递归函数求解

搬砖道人张三丰 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;
}
...全文
171 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 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啊?
  • 打赏
  • 举报
回复
引用 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] 我这儿编译没问题啊,你用的什么编译器啊
  • 打赏
  • 举报
回复
引用 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; }
  • 打赏
  • 举报
回复
代码在这,不知道为什么编辑不了了 #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
  • 打赏
  • 举报
回复
你得先把问题描述一下啊,否则没法看代码啊

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧