猴子吃桃-C语言

题目:猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个;第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第n天想再吃时,只剩下一个桃子了。问第一天共摘了多少个桃子?(用户自己输入不同的天数,看第一天有多少个桃)。

我们采用逆推的方法,先找规律。

如果是两天->第二天x(桃子) = 1,因为4/2-1 = 1,所以第一天x = 4;

(4 = (1+1)*2)

如果是三天->第三天 x = 1, 第二天x = 4,因为10/2-1 = 4,所以第一天x = 10;

(10 = (4+1)*2)

如果是第四天->第四天 x = 1,第三天x = 4,第二天 x = 10,第一天就为22;

(22 = (10+1)*2)

所以我们用个for循环

int i,sum = 1;//注意sum表示某一天的桃子数量,我们初始化sum表示最后一天的桃子数量。
for(i = 1;i<=day;i++)//day是输入的天数。
{
    sum = (sum+1)*2;
}

下面是完整的代码:

#include<stdio.h>
int main()
{
       int i,j,sum = 1;
       int day;
       printf("Input days:\n");//输入天数
       scanf("%d",&day);
       if(day>=0)
       {
              for(i = 1;i<=day;i++)
       {
              sum =(sum+1)*2;//每次都会用到上一次的桃子数量,注意这里不是求和。
       }
       }
       else
       {
              return;
       }
       printf("sum = %d\n",sum);
       return 0;
}

大家一起努力,有什么问题欢迎来评论区。

  • 14
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学编程的土豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值