【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 ...
随机推荐
- Git安装与仓库搭建
yum install git-all cd /srv git init --bare net_server.git git remote - v git remote add server root ...
- html的分类与特点
##块级元素##|元素|描述||--|--||h1-h6|标题||div|区分大模块||p|段落||ul>li|无序列表||ol>li|有序列表||dl>dt dd|自定义列表||t ...
- PHP带参数传值调用python脚本
PHP主要用在服务器端做网站后台开发,有些功能用PHP来实现有点费劲或者无法实现,现在在学习python,同样是脚本语言,感觉python能做的事情PHP不一定能胜任.但是现在大部分的网站后台也是用P ...
- git命令之git mergetool vi非正常退出.swp删除不了的问题
1.git pull命令产生无法merge的错误 使用了 git mergetool命令然后...傻逼了 进入了vi操作界面,不会操作,非正常退出... 然后就产生了.swp相关文件,死活删除不 ...
- Springboot项目打包后的页面丢失问题(thymeleaf报错)
遇到的问题目前找到两种: 返回视图路径以/开头,例如 /test/hello 在thymeleaf页面中,引入的页面以/开头,例如:<footer th:replace="/index ...
- git工具——对比文件的不同
对比工作区和某个版本中文件的不同: (1)继续编辑文件code.txt,在其中添加一行内容: (2)现在要对比工作区中code.txt和head版本中code.txt的不同,使用如下命令: 前面没有出 ...
- TCP 和UDP协议的应用考虑
linux uboot烧写采用的是TFTP协议,是基于UDP的不可靠需要自定义包头包围的网络升级方式. 代码比较简单,容易实现单片机的移植和使用,倒是可以考虑实现一种远程升级的方式. 但是事实上,对于 ...
- linux 查看ip地址
1.先要打开linux服务器,然后在linux桌面的空白处点击右键 2.在弹出的选项里,点击[打开终端] 3.打开linux服务器的命令终端后,输入查询linux的ip地址的命令:ifconfig - ...
- Java 入门
Java 入门 入门书籍 Java相关书籍: <Java编程思想> 算是比较经典和全面的书籍; 10章可以快速过一下,都是基本语法,不需要花太多时间. 中后段的一些章节,类型信息.泛型.容 ...
- 泛型约束new()的使用
下面泛型约束代码,where字句后面有new()约束,T类型必须有公有的无参的构造函数. private T InternalCreate<T>() where T : IObjectWi ...