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

热门文章

  1. node爬虫基础~使用cheerio
  2. 机器学习之SVM(支持向量机)
  3. 在linux系统下如何编译运行C语言程序和C++程序
  4. opencv学习系列——图像对比度亮度调节
  5. android studio mac jdk1.8,Mac下修改Android Studio的默认JDK版本
  6. tomcat基本介绍
  7. 将一个字符串/字符串数组倒序输出
  8. MicFunPred——最新16S rRNA扩增子数据功能预测数据库
  9. 用最复杂的方式学会数组(Python实现动态数组)
  10. D2admin导出Execl