递归函数求解

何颜曦 2016-07-25 06:24:11
#include <stdio.h>
int getPeachNumber(int n)
{
int num; //定义所剩桃子数
if(n==10)
{
num = 1; //递归结束条件,这里应该是return 1;的,为什么写成num=1得到的结果一样呢
}
else
{
num = (getPeachNumber(n+1)+1)*2;
printf("第%d天所剩桃子%d个\n", n, num);
}
return num;
}
int main()
{
int num = getPeachNumber(1);
printf("猴子第一天摘了:%d个桃子。\n", num);
return 0;
}
...全文
128 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
何颜曦 2016-07-25
引用 7 楼 cyfcsd 的回复:
奥,我知道你说的是啥了,你赋值以后else就不执行了啊,然后就直接把num返回了,它不就是1嘛
我明白了,getPeachNumber函数最后面还有个return,我没看到,不好意思,麻烦你了,不是我写的,没注意到,谢谢你......
回复
flying_music 2016-07-25
奥,我知道你说的是啥了,你赋值以后else就不执行了啊,然后就直接把num返回了,它不就是1嘛
回复
flying_music 2016-07-25
引用 5 楼 weixin_35688685 的回复:
[quote=引用 4 楼 cyfcsd 的回复:] [quote=引用 3 楼 weixin_35688685 的回复:] [quote=引用 1 楼 cyfcsd 的回复:] 你得先把问题描述一下啊,否则没法看代码啊
代码在这,不知道为什么编辑不了了 #include <stdio.h> int getPeachNumber(int n) { int num; //定义所剩桃子数 if(n==10) { num = 1; //递归结束条件,这里应该是return 1;的,为什么写成num=1得到的结果一样呢 } else { num = (getPeachNumber(n+1)+1)*2; printf("第%d天所剩桃子%d个\n", n, num); } return num; } int main() { int num = getPeachNumber(1); printf("猴子第一天摘了:%d个桃子。\n", num); return 0; }[/quote] 我这儿编译没问题啊,你用的什么编译器啊[/quote]我知道结果正确,编译也没问题,但是我是想问正常来说不应该是return 1吗,返回1,但是 为什么写成sun=1也能的到一样的结果[/quote] 哪儿有sun=1啊?
回复
何颜曦 2016-07-25
引用 4 楼 cyfcsd 的回复:
[quote=引用 3 楼 weixin_35688685 的回复:] [quote=引用 1 楼 cyfcsd 的回复:] 你得先把问题描述一下啊,否则没法看代码啊
代码在这,不知道为什么编辑不了了 #include <stdio.h> int getPeachNumber(int n) { int num; //定义所剩桃子数 if(n==10) { num = 1; //递归结束条件,这里应该是return 1;的,为什么写成num=1得到的结果一样呢 } else { num = (getPeachNumber(n+1)+1)*2; printf("第%d天所剩桃子%d个\n", n, num); } return num; } int main() { int num = getPeachNumber(1); printf("猴子第一天摘了:%d个桃子。\n", num); return 0; }[/quote] 我这儿编译没问题啊,你用的什么编译器啊[/quote]我知道结果正确,编译也没问题,但是我是想问正常来说不应该是return 1吗,返回1,但是 为什么写成sun=1也能的到一样的结果
回复
flying_music 2016-07-25
引用 3 楼 weixin_35688685 的回复:
[quote=引用 1 楼 cyfcsd 的回复:] 你得先把问题描述一下啊,否则没法看代码啊
代码在这,不知道为什么编辑不了了 #include <stdio.h> int getPeachNumber(int n) { int num; //定义所剩桃子数 if(n==10) { num = 1; //递归结束条件,这里应该是return 1;的,为什么写成num=1得到的结果一样呢 } else { num = (getPeachNumber(n+1)+1)*2; printf("第%d天所剩桃子%d个\n", n, num); } return num; } int main() { int num = getPeachNumber(1); printf("猴子第一天摘了:%d个桃子。\n", num); return 0; }[/quote] 我这儿编译没问题啊,你用的什么编译器啊
回复
何颜曦 2016-07-25
引用 1 楼 cyfcsd 的回复:
你得先把问题描述一下啊,否则没法看代码啊
代码在这,不知道为什么编辑不了了 #include <stdio.h> int getPeachNumber(int n) { int num; //定义所剩桃子数 if(n==10) { num = 1; //递归结束条件,这里应该是return 1;的,为什么写成num=1得到的结果一样呢 } else { num = (getPeachNumber(n+1)+1)*2; printf("第%d天所剩桃子%d个\n", n, num); } return num; } int main() { int num = getPeachNumber(1); printf("猴子第一天摘了:%d个桃子。\n", num); return 0; }
回复
何颜曦 2016-07-25
代码在这,不知道为什么编辑不了了 #include <stdio.h> int getPeachNumber(int n) { int num; //定义所剩桃子数 if(n==10) { num = 1; //递归结束条件,这里应该是return 1;的,为什么写成num=1得到的结果一样呢 } else { num = (getPeachNumber(n+1)+1)*2; printf("第%d天所剩桃子%d个\n", n, num); } return num; } int main() { int num = getPeachNumber(1); printf("猴子第一天摘了:%d个桃子。\n", num); return 0; }
回复
flying_music 2016-07-25
你得先把问题描述一下啊,否则没法看代码啊
回复
发动态
发帖子
新手乐园
创建于2007-09-28

3.2w+

社区成员

C/C++ 新手乐园
申请成为版主
社区公告
暂无公告