猴子吃桃问题 猴子第一天摘下若干个桃子,当即吃了一半

首先给大家推荐一下我老师大神的人工智能教学网站。教学不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵黄段子!点这里可以跳转到网站

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

支持原创文章,转载请注明出处:http://blog.csdn.net/friendan/article/details/8829530

———————————————————————————————————————————-

有这样一道题目;

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

答案为:1534个。
——————————————————————————————————————————-

题目分析:
第一天的桃子数量,等于第二天的桃子数量加1然后乘以2
第二天的桃子数量,等于第三天的桃子数量加1然后乘以2
第三天的桃子数量,等于第四天的桃子数量加1然后乘以2
第四天的桃子数量,等于第五天的桃子数量加1然后乘以2
第五天的桃子数量,等于第六天的桃子数量加1然后乘以2
第六天的桃子数量,等于第七天的桃子数量加1然后乘以2
第七天的桃子数量,等于第八天的桃子数量加1然后乘以2
第八天的桃子数量,等于第九天的桃子数量加1然后乘以2
第九天的桃子数量,等于第十天的桃子数量加1然后乘以2
……//哈哈,第十天桃子的数量已知为1个,现在可以倒推第一天桃子的数量了吧。

很明显,前一天的桃子数量等于后一天的数量加1然后乘以2

————————————————————————————————————————-

通过以上分析,我们发现每一天桃子数量的求法过程是类似的,因此我们可以通过

递归来解决该问题。递归函数的出口为n等于10,参数也是为n,表示第n天。

———————————————————————————————————————-

我写的代码例子如下:

#include <iostream>using namespace std;//求桃子第一天的数量int Peach(int n){ int sum=0; if (10==n) {  return 1; } else {  sum=Peach(n+1);//求下一天桃子的数量  sum=(sum+1)*2; //第n天桃子的数量 } if (1==n) {  printf("第一天共摘多少%d个桃子\n",sum); } return sum;//返回第n天桃子的数量}void main(void){  Peach(1); cin.get();}

————————————————————————————————————————————————————————————————-

//效果截图

—————————————————————————————————————————————————————————————————

您的十分满意是我追求的宗旨。

您的一点建议是我后续的动力。

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

点这里可以跳转到人工智能网站

0 0 投票数
文章评分
订阅评论
提醒
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请发表评论。x
()
x