题目描述
猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又
多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。
输入
N
输出
桃子总数
样例输入
10
样例输出
1534
解析:本题中最大的陷阱在于第n天并没有按照上述规律吃桃子,因此第n天余下的1个桃子与第1天的总数没有规律上的联系,但在第n-1天的
余量与总数x是有关系的,因此我们可以用第n-1天的余量与x的关系来求得x的值。假设x足够大,通过下图中的结果(左侧为第n天所吃的
桃子数,右侧为当天的余量)那么第n天的余量为:


(x/(2的n次方))-((2的n次方减1)/(2的n-1次方))---------算式1
实际上x为有限的,所以第n天的余量1和x并没有这个关系,但是进一步想,第n-1天的余量与x是有这个关系的,因此将n-1代入算式1中,即可获得n与有限x的关系,最终算得x的值等于
(2的n次方)+(2的n-1次方)-2------------算式2
说到这里,这道题就迎刃而解了,在编程中,我们只需要使用头文件math中的指数函数pow() 即可解决问题了,具体代码如下:
#include <stdio.h>
#include <math.h>

int main(void)
{
int x,n;
scanf("%d",&n);
x = pow(2,n) + pow(2,(n - 1)) - 2;
printf("%d\n",x);
return 0;
}
总结:本人最开始的时候把解析中的算式1当作最终的关系式,结果代入数值时,结果差异很大,原因就在于最初没有发现解析中所提到的“陷阱”;经过一番思索,猜得出x与n之间正确的关系表达式,即算式2;在自行解决本题目之后,发现网上另有其它解法,这里稍微一提:使用倒推的方法求出第一天的总数,其中规律为第n天的余量加上1等于第n-1天余量的一半,即:
(S(n) + 1) X 2 =S(n - 1);(S(n)为第n天的余量)
这样倒推n-1次即可获得第1天的总量。

1020【编程入门】猴子吃桃的问题相关推荐

  1. [编程入门]猴子吃桃的问题

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

  2. [编程入门]猴子吃桃的问题(JAVA解法)

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

  3. C++ 编程练习——猴子吃桃问题

    目录 编程练习--猴子吃桃问题 编程练习--猴子吃桃问题 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个:第二天早上又将剩下的桃子吃掉一半,又多吃了一个:以此往后,到第十天早上想再吃时 ...

  4. C语言编程:猴子吃桃问题

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

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

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

  6. 【C语言编程】猴子吃桃问题。

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

  7. python猴子吃桃问题(while循环)_【Python】【demo实验22】【练习实例】【猴子吃桃问题】...

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

  8. 编程笔试(解析及代码实现):国内各大银行(招商银行/浦发银行等)在线笔试常见题目(猴子吃桃/字符串逆序输出/一段话输出字的个数/单词大小转换等)及其代码实现(Java/Python/C#等)之详细攻略

    编程笔试(解析及代码实现):国内各大银行(招商银行/浦发银行等)在线笔试常见题目(猴子吃桃/字符串逆序输出/一段话输出字的个数/单词大小转换等)及其代码实现(Java/Python/C#等)之详细攻略 ...

  9. 编程笔试(解析及代码实现):猴子吃桃。猴子第一天吃了若干个桃子,当即吃了一半,还不解馋,又多吃了一个…的C++、Java、Python、C#等语言代码实现

    编程笔试(解析及代码实现):猴子吃桃.猴子第一天吃了若干个桃子,当即吃了一半,还不解馋,又多吃了一个. 第二天早上又将剩下的桃子吃了一半,还是不过瘾,又多吃了一个.以后每天都吃前一天剩下的一半再加一个 ...

最新文章

  1. ACMNO.11 一个数如果恰好等于它的因子之和,这个数就称为“完数“。 例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数“。 编程序找出N之内的所有完数,并按下面格式输出其因子
  2. PPT插入文本框但是字体并不是想要的
  3. linux的命令行操作和shell的区别
  4. 使用Decision Tree对MNIST数据集进行实验
  5. webpack4.x中使用postcss-loader和autoprefixer给css3样式添加浏览器兼容
  6. ioctl中的ifconf ifreg 结构
  7. 请你说明一下TreeMap的底层实现?
  8. java笔记:自己动手写javaEE框架(七)--使用JSON和Ajax技术
  9. 【OS学习笔记】二十六 保护模式八:任务门---任务切换
  10. 张凯江:架构能力-“构建”世界的能力
  11. 树莓派 树莓派 编c++_树莓派6年
  12. 拥有所有归档文件,但没有备份情况下的数据文件恢复
  13. oracle 转储 mysql_Oracle中DUMP的转储方法
  14. 操作系统习题解答 (张尧学) 第一章
  15. asp.net连接mssql server的方式
  16. 推荐系统实战1——什么是推荐系统与常见的推荐系统评价指标
  17. 中级职称考试 计算机 英语考试,中级职称工程师职称计算机考试需要考过哪些模块...
  18. ensp VRRP配置2
  19. iOS大神牛人的博客集合
  20. android 远程管理,教你如何在Android上远程控制电脑

热门文章

  1. 解决微信小程序更新发布之后线上还是之前的老版本
  2. 第八届慈展会将于9月18日至20日在深圳举行
  3. 照相机闪光灯的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  4. Java泛型的协变与逆变
  5. Geophysics背景知识(1)
  6. 第六章 词法分析与词性标注
  7. 简单多边形与圆相交求面积
  8. 930页!熬夜整理了一份包含算法+数据结构+大厂面经 高分原创文章的电子书送给你
  9. 【电气专业知识问答】问:大型发电机励磁电源的种类、要求和适用范围是什么?
  10. 微信小程序-WXS脚本