2020.12.29使用递归函数解决猴子吃桃问题
题目如下:
*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使用递归函数解决猴子吃桃问题相关推荐
- python猴子吃桃问题_用Python解决猴子吃桃问题
猴子吃桃问题是数学中的一道经典问题,学习过相关数学知识的人固然已经知道该如何解答了,但还没有学到这部分知识的孩子该怎么办呢?其实接触了编程的孩子就可以用编程知识来解决这个问题了,比如Python,下面 ...
- 【C语言】利用递归解决猴子吃桃问题
[C语言]利用递归解决猴子吃桃问题 参考文章: (1)[C语言]利用递归解决猴子吃桃问题 (2)https://www.cnblogs.com/ieybl/p/6597937.html 备忘一下.
- 递推和递归的方法解决猴子吃桃问题(10天延伸到N天)——Java
目录 问题重述 递推法 问题分析 递推代码部分 运行结果: 递归法 问题分析 递归代码部分 运行结果: 问题重述 猴子吃桃问题. 猴子第一天吃了若干个桃子,当即吃了一半,还不解馋,又多吃了一个: 第二 ...
- C++解决猴子吃桃问题(详细)
猴子吃桃问题就是:一个猴子,看到许多的桃子,第一天吃了一半,又吃了一个,第二天也吃了一半,又吃了一个,一直这样下去,到了第10天,只剩下一个桃子了,求猴子吃桃子的过程. 首先我们要知道怎么算 假设第一 ...
- 用遍历思想解决(猴子吃桃问题)猴子第一天摘下若干个桃子,当时就吃了一半,还不过瘾,就又吃了一个。
猴子吃桃问题.猴子第一天摘下若干个桃子,当时就吃了一半,还不过瘾, 就又吃了一个.第二天又将剩下的桃子吃掉一半,又多吃了一个.以后每天都吃前一天剩下的一半零一个.到第 10 天在想吃的时候就剩一个桃子 ...
- 利用python解决猴子吃桃问题
猴子吃桃问题 描述 猴子第一天摘下若干个桃子,立即吃了一半,还不过瘾又多吃了一个,第二天将第一天剩下的桃子吃了一半又多吃了一个,以后每天以这个规律吃下去,到第十天再去吃时发现只剩下一个桃子,问猴子第一 ...
- python猴子偷桃递归_用matlab编程解决猴子吃桃问题
满意答案 askasp9 2013.09.03 采纳率:50% 等级:12 已帮助:12317人 我也来凑个热闹,利用递归算法,得到桃子数目 将下面程序复制,建一个StealPeach.m文件, ...
- C语言解决猴子吃桃问题
猴子想peach问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将第一天剩下的桃子吃掉一半,有多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第 10 天早上 ...
- 利用C++,解决猴子吃桃问题
题目: 猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多 吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天 剩下的一半零一个.到第 10 天早上想再吃时,见只剩下一 ...
最新文章
- 安装软件包的三种方法、rpm包介绍、rpm工具用法、yum工具用法、yum搭建本地仓库...
- python爬虫赚钱途径-终于领会python爬虫赚钱的途径
- 自然语言处理库——TextBlob
- 【活动】PMcaff免费培训之终结版扩招名额----20名额等你来抢
- webService学习8:wsdl文档解释
- 虚拟机中在红帽的Linux 下安装yum工具
- 前端学习(492):script之标签得位置
- 图像领域深度学习的七个境界
- SAP License:如何导入License
- java鸟_java飞扬的小鸟
- mysql_数据备份和迁移(Windows)
- 百练6183-人民币支付-2014正式A题
- Linux远程登录和多机操作
- 2020CCPC 威海 G Caesar Cipher
- linux 串口 arduino,linux通过串口对arduino读写
- 鸿蒙之下分城如果建设,率土之滨:分城数量不再限制,戍城、金虎台、拜将台让战斗更激烈...
- mysql C openmp_OpenMP: sections分段并行 | 学步园
- Spring的init-method和destory-method
- VS中MD和MT的区别
- 2022CoCa: Contrastive Captioners are Image-Text Fountion Models