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 天早上想再吃时,见只剩下一 ...
最新文章
- axios不发起请求_重复的ajax请求让人很受伤
- pandas比较两个dataframe特定数据列的数值是否相同并给出差值:使用np.where函数
- 模式识别之数字识别---扑克牌识别
- MFC/UDP通信函数详细解说
- Android Jetpack组件App Startup简析
- 主题图片_临床医学院“树树皆秋色,山山唯落晖”主题图片征集活动
- cesium billboard 点击 不想显示infobox
- LeetCode 1227. 飞机座位分配概率(DP+数学归纳法)
- NetBeans IDE 7.1 Window Layout Designer
- Node.js 连接 MySQL 并进行数据库操作
- mac linux 蓝牙键盘,还在纠结Mac版键盘?试试KeyRemap4MacBook吧!
- Windows 安装 Redis 教程
- 计算机网络学习笔记(30. DNS记录和消息)
- Photoshop 入门教程「8」如何使用裁剪工具?
- python 通过ftplib 实现上传下载
- jQuery源码研究——怎么看源码
- 蓝牙 - BQB认证测试
- 「网络安全」将会是下一个风口?这个“下饭神剧”值得一看!
- 八股文-ArrayList
- 《Designing Data-Intensive Application》01数据系统的基石-可靠性/可扩展性/可维护性