请用c语言编程猴子吃桃子,【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,结果都没有改变

64b891fd9ddbcbba70e59d244a9cc500.png

但正确的结果应该是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);

}

db482e4514f5a6e9a0517cc5efdb44b2.png

那么如何确定循环的次数呢?一定要小心!

这里的第10天对应的就是1了,那么后面的循环应该是针对于第9天了啦!

4. 总结

一定要小心循环条件呢!不可以似是而非呢!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值