【C语言编程练习】5.11 猴子吃桃子问题
1. 问题描述
有一只猴子,第一天摘下若干个桃子,当即吃掉了一半,又多吃了一个,第二天又将剩下的桃子吃掉了一半,又多吃了一个,按照这样的吃法,每天都吃前一天吃下的桃子的一半又一个。到第十天,就剩下了一个桃子。问题:第一天摘下了多少个桃子
2. 题目分析
如果按照正常的思路而言,设第一天摘下了X个桃子
第一天剩下 --- X/2-1个桃子
第二天剩下 ---( X/2-1)/2-1个桃子
【问题】如何确保桃子的一半一定是一个偶数呢?
发现应该从最后一天开始想
以此类推,到第10天
那么编程是否可以从第10天开始,往前递推,
第10天 1
第9天 (1+1)*2
第8天 (((1+1)*2)+1)*2
先进行代码尝试吧
【注意】i++还是++i
3. 代码尝试
【版本1】
#include "stdio.h"
int main(){
int num=1;
int i=1;
while(i<=10){
num = (num+1)*2;
//++i;
i++;
}
printf("the number of peach is %d",num);
}
不论是i++还是++i,结果都没有改变

但正确的结果应该是1534呢!哪里有错呢?? 错误原因是for循环的条件,这个确实是一个易错点,先看看正确的代码。
【最终版本】
#include "stdio.h"
int main(){
int num=1,i;
for(i=9;i>0;i--){
num = (num+1)*2;
}
printf("the number of peach is %d",num);
}
以及下面的版本也是正确的
#include "stdio.h"
int main(){
int num=1;
int i=1;
while(i<=9){
num = (num+1)*2;
//++i;
i++;
}
printf("the number of peach is %d",num);
}

那么如何确定循环的次数呢?一定要小心!
这里的第10天对应的就是1了,那么后面的循环应该是针对于第9天了啦!
4. 总结
一定要小心循环条件呢!不可以似是而非呢!
【C语言编程练习】5.11 猴子吃桃子问题的更多相关文章
- 第二章 C语言编程实践
上章回顾 宏定义特点和注意细节 条件编译特点和主要用处 文件包含的路径查询规则 C语言扩展宏定义的用法 第二章 第二章 C语言编程实践 C语言编程实践 预习检查 异或的运算符是什么 宏定义最主要的特点 ...
- 华为C语言编程规范
DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd ...
- linux 操作系统下c语言编程入门
2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理 ...
- 采访:Go语言编程
Go语言是由Google在2009年11月份公布的,它的目标是要应对软件开发所面临的最新挑战.Go语言特别被设计为快速(包括在编译时).支持多核的语言,并且兼顾了动态语言的简单性和静态类型语言的安全性 ...
- Linux下C语言编程基础学习记录
VIM的基本使用 LINUX下C语言编程 用gcc命令编译运行C语言文件 预处理阶段:将*.c文件转化为*.i预处理过的C程序. 编译阶段:将*.i文件编译为汇编代码*.s文件. 汇编阶段:将*.s ...
- R语言编程艺术(4)R对数据、文件、字符串以及图形的处理
本文对应<R语言编程艺术> 第8章:数学运算与模拟: 第10章:输入与输出: 第11章:字符串操作: 第12章:绘图 =================================== ...
- C语言编程规范
C语言编程规范 6 函数与过程 6.1 函数的功能与规模设计 函数应当短而精美,而且只做一件事.不要设计多用途面面俱到的函数,多功能集于一身的函数,很可能使函数的理解.测试.维护等变得困难. 6.2 ...
- C语言编程规范试题(标准答案)
C语言编程规范试题(标准答案) 一.单选题(每小题3分,共20小题60分) 1.1-1.5 B D A C B 1.6-1.10 C A D B C 1.11 ...
- C语言编程规范试题
C语言编程规范试题 [说明]: 1.本试题中不考虑头文件引用问题(假定已经包含正确的头文件),C语言的标准函数都可用: 2.如果不特别说明,假定程序运行环境为:操作系统Windows 2000, VC ...
随机推荐
- $refs的用法及作用
获取DOM元素,一般用document.querySelector获取这个dom节点,然后在获取input的值 但是用ref绑定之后,就不需要在获取dom节点了,直接在上面的input上绑定input ...
- work behind corp proxy
=================================proxy 的写法=================================一般写法是: http://my.proxy.ad ...
- Python——Python+Pydev出现SyntaxError: Non-UTF-8 code
搭建好Python+Pydev后发现每次输入中文,包括注释,会出现语法错误提示,如: SyntaxError: Non-UTF-8 code starting with... 可通过下面方法解决. 1 ...
- es6中的class的使用
---恢复内容开始--- es5中生成实例对象的传统方法是通过构造函数: function Point(x,y){ this.x = x; this.y = y; } Point.prototype. ...
- 请求数据loading
请求数据加载,CSS3实现 HTML: <!--请求数据loading--> <div class="back_loading"> <div clas ...
- luogu P5305 [GXOI/GZOI2019]旧词
传送门 先考虑\(k=1\),一个点的深度就是到根节点的路径上的点的个数,所以\(lca(x,y)\)的深度就是\(x\)和\(y\)到根路径的交集路径上的点的个数,那么对于一个询问,我们可以对每个点 ...
- 获取spring的IOC核心容器,并根据id获取对象
public class Client { /** * 获取spring的IOC核心容器,并根据id获取对象 * ApplicationContext的三个常用实现类 * classPathXmlAp ...
- Eclipse使用Git检出项目
1.打开Eclipse——File——Import...: 2.在弹出的Import框中选择Git——Projects from Git——NEXT: 3.选择Clone URI——Next: 4.输 ...
- L1-Day9
1.学习让我感觉很棒.(什么关系?动作 or 描述?主语部分是?) [我的翻译]Learning makes me that feel good. [标准答案]Lear ...
- 【转】pyhton之Reportlab模块——生成pdf文件
[转]pyhton之Reportlab模块 reportlab模块是用python语言生成pdf文件的模块 安装:pip install reportlab 模块默认不支持中文,如果使用中文需要注册 ...