题目如下:
*OMG_Python提供思路
猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又多吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。
以后每天都吃前一天剩下的一半零一个。到第10天在想吃的时候就剩一个桃子了,问第一天共摘下来多少个桃子?
利用 递归函数编写程序,并反向打印每天所剩桃子数。试写出递归函数 完成题目的功能。
函数原型:int getPeachNumber(int n);

递归函数思路即反复调用函数本身,虽然要求解的对应天数不同,但一般要求使用递归函数的题目都会给出一个确定的、已知的结果,该结果可用作递归结束的条件(如本题中已知第10天只剩下了一个桃子)。

#include <stdio.h>
int getPeachNumber(int n)
{//n-天数,num-剩余的桃子数int num; if(n==10) //递归函数的结束条件 {num=1;//第十天只剩下一个桃子; printf("第%d天所剩桃子%d个\n",n,num);}  else{num=2*(getPeachNumber(n+1)+1);//从9倒序到1重复调用该函数printf("第%d天所剩桃子%d个\n",n,num);}return num;//将返回值传给主函数//函数名+括号:fn1()==return后面的值
}
int main()
{  int num = getPeachNumber(1); printf("猴子第一天摘了:%d个桃子。\n", num); return 0;
}

一开始我不理解递归函数的原理,明明没有使用for函数,为什么程序依然能执行到结束指令呢?看完课本,原来原理如图所示:

n==10,num=1是确定的,可作为结束条件,程序先回溯(即套娃),反复调用函数本身,直到找到一个确定的值为止。再从这个确定的值实现递推回去,输出结果。
(从1-10,再从10-1,规定了递推函数的范围)。
结果如图:

peace.

2020.12.29使用递归函数解决猴子吃桃问题相关推荐

  1. python猴子吃桃问题_用Python解决猴子吃桃问题

    猴子吃桃问题是数学中的一道经典问题,学习过相关数学知识的人固然已经知道该如何解答了,但还没有学到这部分知识的孩子该怎么办呢?其实接触了编程的孩子就可以用编程知识来解决这个问题了,比如Python,下面 ...

  2. 【C语言】利用递归解决猴子吃桃问题

    [C语言]利用递归解决猴子吃桃问题 参考文章: (1)[C语言]利用递归解决猴子吃桃问题 (2)https://www.cnblogs.com/ieybl/p/6597937.html 备忘一下.

  3. 递推和递归的方法解决猴子吃桃问题(10天延伸到N天)——Java

    目录 问题重述 递推法 问题分析 递推代码部分 运行结果: 递归法 问题分析 递归代码部分 运行结果: 问题重述 猴子吃桃问题. 猴子第一天吃了若干个桃子,当即吃了一半,还不解馋,又多吃了一个: 第二 ...

  4. C++解决猴子吃桃问题(详细)

    猴子吃桃问题就是:一个猴子,看到许多的桃子,第一天吃了一半,又吃了一个,第二天也吃了一半,又吃了一个,一直这样下去,到了第10天,只剩下一个桃子了,求猴子吃桃子的过程. 首先我们要知道怎么算 假设第一 ...

  5. 用遍历思想解决(猴子吃桃问题)猴子第一天摘下若干个桃子,当时就吃了一半,还不过瘾,就又吃了一个。

    猴子吃桃问题.猴子第一天摘下若干个桃子,当时就吃了一半,还不过瘾, 就又吃了一个.第二天又将剩下的桃子吃掉一半,又多吃了一个.以后每天都吃前一天剩下的一半零一个.到第 10 天在想吃的时候就剩一个桃子 ...

  6. 利用python解决猴子吃桃问题

    猴子吃桃问题 描述 猴子第一天摘下若干个桃子,立即吃了一半,还不过瘾又多吃了一个,第二天将第一天剩下的桃子吃了一半又多吃了一个,以后每天以这个规律吃下去,到第十天再去吃时发现只剩下一个桃子,问猴子第一 ...

  7. python猴子偷桃递归_用matlab编程解决猴子吃桃问题

    满意答案 askasp9 2013.09.03 采纳率:50%    等级:12 已帮助:12317人 我也来凑个热闹,利用递归算法,得到桃子数目 将下面程序复制,建一个StealPeach.m文件, ...

  8. C语言解决猴子吃桃问题

    猴子想peach问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将第一天剩下的桃子吃掉一半,有多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第 10 天早上 ...

  9. 利用C++,解决猴子吃桃问题

    题目: 猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多 吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天 剩下的一半零一个.到第 10 天早上想再吃时,见只剩下一 ...

最新文章

  1. 安装软件包的三种方法、rpm包介绍、rpm工具用法、yum工具用法、yum搭建本地仓库...
  2. python爬虫赚钱途径-终于领会python爬虫赚钱的途径
  3. 自然语言处理库——TextBlob
  4. 【活动】PMcaff免费培训之终结版扩招名额----20名额等你来抢
  5. webService学习8:wsdl文档解释
  6. 虚拟机中在红帽的Linux 下安装yum工具
  7. 前端学习(492):script之标签得位置
  8. 图像领域深度学习的七个境界
  9. SAP License:如何导入License
  10. java鸟_java飞扬的小鸟
  11. mysql_数据备份和迁移(Windows)
  12. 百练6183-人民币支付-2014正式A题
  13. Linux远程登录和多机操作
  14. 2020CCPC 威海 G Caesar Cipher
  15. linux 串口 arduino,linux通过串口对arduino读写
  16. 鸿蒙之下分城如果建设,率土之滨:分城数量不再限制,戍城、金虎台、拜将台让战斗更激烈...
  17. mysql C openmp_OpenMP: sections分段并行 | 学步园
  18. Spring的init-method和destory-method
  19. VS中MD和MT的区别
  20. 2022CoCa: Contrastive Captioners are Image-Text Fountion Models

热门文章

  1. JDK各个版本的新特性
  2. Vue快速入门(附实战小项目:记事本、天气预报、音乐播放器)
  3. ARM64下构建 UEFI 模块
  4. bWAPP靶场——下载与安装(Windows最全)
  5. 没有人可以改变我的命运,除了我自己
  6. CycilcBarrier
  7. 港科夜闻|香港科大委任郭毅可教授为首席副校长
  8. Vue 自定义指令 解决IOS webview input 获取焦点被键盘遮挡
  9. ABAP中USING与CHANGING的用法
  10. 怎样将应用程序发布到Apple store上去 (一)