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

———-

一、思路分析:
采用逆向思维,从后往前推断,发现其中有相同的地方,即出现递推公式,可以采用递归方法。
令S10=1,容易看出S9=2(S10+1),简化一下
S9=2S10+2
S8=2S9+2
…..
Sn=2Sn+1+2
下面我将采用三种方式解决这个问题。(前两种为普通循环方式,第三种为递归方式)

二、代码讲解

1、方法一(while语句)

我以while语句为例,do while等也可以实现,留给读者自己思考、修改

//方法一:
//  Created by Neil Wesley on 16/5/23.
//  Copyright © 2016年 Neil Wesley. All rights reserved.#include<stdio.h>
int main()
{int day=9,x1=0,x2=1;while (day>0){x1=(x2+1)*2;x2=x1;day--;}printf("The first day of picking peaches number is:%d\n",x1);
}

2、方法二(for循环)

//方法二:
//  Created by Neil Wesley on 16/5/23.
//  Copyright © 2016年 Neil Wesley. All rights reserved.#include<stdio.h>
int main()
{int day=9,x1=0,x2=1;for(;day>0;day--){x1=(x2+1)*2;x2=x1;}printf("The first day of picking peaches number is:%d\n",x1);
}

3、方法三(递归方法)

方法三:
//  Created by Neil Wesley on 16/5/23.
//  Copyright © 2016年 Neil Wesley. All rights reserved.#include "stdio.h"
int sumPeach(int day)
{if (day == 10)return 1;elsereturn 2 * sumPeach(day + 1) + 2;
}
int main()
{int sum;sum=sumPeach(1);printf("The first day of picking peaches number is:%d\n",sum);
}

三、运行结果

以上三种方法的运行结果都是:

猴子吃桃问题(三种方法解决)相关推荐

  1. LeetCode547. Friends Circles 利用union find | bfs | dfs三种方法解决

    问题来源 此题来源于LeetCode547. Friend Circles,主要运用了并查集(union find).广度优先遍历(bfs)和深度优先遍历(bfs)三种方法解决. 问题简述 给定一个N ...

  2. html清除图片上下间距,css - 三种方法解决LI和内部Img的上下间距问题

    在火狐浏览器和谷歌浏览器(qq浏览器,谷歌内核)bug类似这张图: img的高度是190*127 但是放到li中,li并没有设置高度,却和内部的图片之间上下错位. 若强行给li设置高度127,他和im ...

  3. java海滩上有一,Java猴子分桃问题--三种算法

    海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子平均分为五分,多了一个,这只猴子把多的一个扔入海中,拿走了一份,第二只猴子把剩下的桃子又平均分成 五分,又多了一个,他同样把多的一个扔入海中,拿走了 ...

  4. python猴子吃桃问题_用Python解决猴子吃桃问题

    猴子吃桃问题是数学中的一道经典问题,学习过相关数学知识的人固然已经知道该如何解答了,但还没有学到这部分知识的孩子该怎么办呢?其实接触了编程的孩子就可以用编程知识来解决这个问题了,比如Python,下面 ...

  5. 三种方法解决 IDEA乱码问题

    第一种方法: 点开Run左边Edit Configurations-进入配置页面. 修改当前 Web 项目 Tomcat Server 的虚拟机,在VM options: 添加"-Dfile ...

  6. 修改hosts 不生效? 三种方法解决

    我们在修改hosts文件时, 会遇到hosts不生效的情况 原因分2种: 1.我们没改对hosts文件, 比如: 保存时没权限(以为保存成功了, 实际上并没有) 写的网址输入错误了(www.baidu ...

  7. 三种方法解决git拒绝连接问题fatal: unable to access xxxx: Failed to connect to xxxx : Connection refused

    git clone 拒绝连接,Connection refused 解决方法 一.使用env指令查询系统代理并取消对应http代理 二.使用git config指令查询代理并取消代理 三.直接修改.g ...

  8. 三种方法解决git拒绝连接问题fatal: unable to access xxxx: Failed to connect to xxxx : Connection refused

    git clone 拒绝连接,Connection refused 解决方法 一.使用env指令查询系统代理并取消对应http代理 二.使用git config指令查询代理并取消代理 三.直接修改.g ...

  9. ios 地图黑屏_iOS11.2黑屏转圈圈怎么办?三种方法解决iOS11.2无限重启问题

    今天凌晨1点,苹果如常推送了iOS11.2beta6公测版更新.眼看这次更新包体积如此大,不少人都觉得这就是与正式版相同的GM版了,所以都毫不犹豫地升级了.本想着升级之后可以获得更流畅的试用体验,没想 ...

最新文章

  1. matlab练习程序(Log Polar变换)
  2. Datawhale赛事大满贯来了!
  3. np.reshape带给我的内存错误
  4. 牛客多校6 - Harmony Pairs(数位dp)
  5. 【算法】学习笔记(5):快速排序
  6. var和function谁先优先执行_变量var声明和函数function声明优先级
  7. XOS 源码详解3: os_s_xxxx.s 汇编代码的 LDR指令
  8. [Giveaway] 来自AnyBizSoft、4Media、EASEUS的限时免费软件
  9. (转)style,currentStyle,getComputedStyle的区别和用法
  10. 2008.12.8希世软件杭州公司
  11. 北斗sdk_北斗定位终端开发技术方案.pdf
  12. 计算机硬件软件基础知识(小白)
  13. SSO单点登录系统解决方案
  14. canvas 实现图片添加水印
  15. win10中如何用鼠标快速切换窗口?
  16. 彻底禁止电脑弹出广告的方法(以2345好压为例)
  17. 【Pygame实战】这游戏有毒,刷爆朋友圈:小编已与病毒版贪吃蛇大战了三百回合,最高分339?
  18. 大湾区国际创客峰会暨MFSZ2021重磅回归!
  19. 宜立方商城 搭建Maven第一天心得
  20. 初学编程最应该知道的8个学习方法,可惜之前没人告诉我……

热门文章

  1. 蜜源如何快速做到月入过万
  2. Combining Implicit Function Learning and Parametric Models for 3D Human Reconstruction
  3. 新闻文化建设杂志新闻文化建设杂志社新闻文化建设编辑部2022年第14期目录
  4. [CodeChef FEB15]Payton numbers(CUSTPRIM)解题报告
  5. linux+循环buffer,说说循环缓冲区(Ring Buffer)
  6. java 数组形式字符串_java 数组格式字符串转化为字符串
  7. 市场规模一年猛增24% 这个靠“打印”出来的市场正在韩国崛起
  8. 好用的APS系统是什么样的?
  9. Stream流、方法引用知识梳理
  10. 「JVM 故障诊断」故障分析与处理案例