猴子吃桃问题(三种方法解决)
题目:猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个;第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第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);
}
三、运行结果
以上三种方法的运行结果都是:
猴子吃桃问题(三种方法解决)相关推荐
- LeetCode547. Friends Circles 利用union find | bfs | dfs三种方法解决
问题来源 此题来源于LeetCode547. Friend Circles,主要运用了并查集(union find).广度优先遍历(bfs)和深度优先遍历(bfs)三种方法解决. 问题简述 给定一个N ...
- html清除图片上下间距,css - 三种方法解决LI和内部Img的上下间距问题
在火狐浏览器和谷歌浏览器(qq浏览器,谷歌内核)bug类似这张图: img的高度是190*127 但是放到li中,li并没有设置高度,却和内部的图片之间上下错位. 若强行给li设置高度127,他和im ...
- java海滩上有一,Java猴子分桃问题--三种算法
海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子平均分为五分,多了一个,这只猴子把多的一个扔入海中,拿走了一份,第二只猴子把剩下的桃子又平均分成 五分,又多了一个,他同样把多的一个扔入海中,拿走了 ...
- python猴子吃桃问题_用Python解决猴子吃桃问题
猴子吃桃问题是数学中的一道经典问题,学习过相关数学知识的人固然已经知道该如何解答了,但还没有学到这部分知识的孩子该怎么办呢?其实接触了编程的孩子就可以用编程知识来解决这个问题了,比如Python,下面 ...
- 三种方法解决 IDEA乱码问题
第一种方法: 点开Run左边Edit Configurations-进入配置页面. 修改当前 Web 项目 Tomcat Server 的虚拟机,在VM options: 添加"-Dfile ...
- 修改hosts 不生效? 三种方法解决
我们在修改hosts文件时, 会遇到hosts不生效的情况 原因分2种: 1.我们没改对hosts文件, 比如: 保存时没权限(以为保存成功了, 实际上并没有) 写的网址输入错误了(www.baidu ...
- 三种方法解决git拒绝连接问题fatal: unable to access xxxx: Failed to connect to xxxx : Connection refused
git clone 拒绝连接,Connection refused 解决方法 一.使用env指令查询系统代理并取消对应http代理 二.使用git config指令查询代理并取消代理 三.直接修改.g ...
- 三种方法解决git拒绝连接问题fatal: unable to access xxxx: Failed to connect to xxxx : Connection refused
git clone 拒绝连接,Connection refused 解决方法 一.使用env指令查询系统代理并取消对应http代理 二.使用git config指令查询代理并取消代理 三.直接修改.g ...
- ios 地图黑屏_iOS11.2黑屏转圈圈怎么办?三种方法解决iOS11.2无限重启问题
今天凌晨1点,苹果如常推送了iOS11.2beta6公测版更新.眼看这次更新包体积如此大,不少人都觉得这就是与正式版相同的GM版了,所以都毫不犹豫地升级了.本想着升级之后可以获得更流畅的试用体验,没想 ...
最新文章
- matlab练习程序(Log Polar变换)
- Datawhale赛事大满贯来了!
- np.reshape带给我的内存错误
- 牛客多校6 - Harmony Pairs(数位dp)
- 【算法】学习笔记(5):快速排序
- var和function谁先优先执行_变量var声明和函数function声明优先级
- XOS 源码详解3: os_s_xxxx.s 汇编代码的 LDR指令
- [Giveaway] 来自AnyBizSoft、4Media、EASEUS的限时免费软件
- (转)style,currentStyle,getComputedStyle的区别和用法
- 2008.12.8希世软件杭州公司
- 北斗sdk_北斗定位终端开发技术方案.pdf
- 计算机硬件软件基础知识(小白)
- SSO单点登录系统解决方案
- canvas 实现图片添加水印
- win10中如何用鼠标快速切换窗口?
- 彻底禁止电脑弹出广告的方法(以2345好压为例)
- 【Pygame实战】这游戏有毒,刷爆朋友圈:小编已与病毒版贪吃蛇大战了三百回合,最高分339?
- 大湾区国际创客峰会暨MFSZ2021重磅回归!
- 宜立方商城 搭建Maven第一天心得
- 初学编程最应该知道的8个学习方法,可惜之前没人告诉我……
热门文章
- 蜜源如何快速做到月入过万
- Combining Implicit Function Learning and Parametric Models for 3D Human Reconstruction
- 新闻文化建设杂志新闻文化建设杂志社新闻文化建设编辑部2022年第14期目录
- [CodeChef FEB15]Payton numbers(CUSTPRIM)解题报告
- linux+循环buffer,说说循环缓冲区(Ring Buffer)
- java 数组形式字符串_java 数组格式字符串转化为字符串
- 市场规模一年猛增24% 这个靠“打印”出来的市场正在韩国崛起
- 好用的APS系统是什么样的?
- Stream流、方法引用知识梳理
- 「JVM 故障诊断」故障分析与处理案例