int GCD(int a,int b)
{ if(a%b==0)return b;
else return GCD(b,a%b);
}
求最大公约数。
把return GCD(b,a%b);去掉之后就错了。为什么?GCD 不是会调用自己的么? 最后不是一定会执行return b 的么?
C语言中的递归问题一个小小的疑惑
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答
- ll_0520 2013-09-14 13:48关注
在满足a%b==0之前,函数需要递归调用GCD,但是每次调用时参数a,b的值都不同,所以return GCD(b,a%b);不能去掉。
GCD 不是会调用自己的么?:你把return GCD(b,a%b);去掉它怎么调用自己......
最后不是一定会执行return b 的么?:只有当a%b==0才return b,不满足条件继续递归,每次递归时参数a,b会变化解决 无用评论 打赏 举报
悬赏问题
- ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
- ¥30 深度学习,前后端连接
- ¥15 孟德尔随机化结果不一致
- ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
- ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
- ¥15 谁有desed数据集呀
- ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
- ¥15 关于#hadoop#的问题
- ¥15 (标签-Python|关键词-socket)
- ¥15 keil里为什么main.c定义的函数在it.c调用不了