猴子吃桃-C语言

猴子吃桃-C语言,第1张

题目:猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个;第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第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
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;
}

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/707038.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-24
下一篇 2022-04-24

发表评论

登录后才能评论

评论列表(0条)

保存