题目描述

猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第N天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。

输入

N

输出

桃子总数

样例输入

10

样例输出

1534

来源/分类

C语言 

题目截图:

ACNO.15猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再_i++


思路:

数据进行数字演示,s=s/2-1;
反过来就是,s=2(1+s)+1!
最后一天,不会再有果子吃。
for(int i=0;i<a-1;i++)
只需要加一个果子就好!
s++;

代码:

#include<iostream>
using namespace std;
int main()
{
int a,s;
s=0;
cin>>a;
//printf("a %d\n",a);
//printf("b %.2f\n",b);
//printf("s %.2f\n\n\n",s);
for(int i=0;i<a-1;i++)
{
s=2*(1+s)+1;
//printf("a %d\n",a);
//printf("s %d\n",s);
}
s++;
printf("%d",s);
}

代码截图:

ACNO.15猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再_数据_02


代码执行截图:

ACNO.15猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再_c语言_03


OJ结果:

ACNO.15猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再_c语言_04