Problem Description 喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题!
Input 输入数据有多组,每组占一行,包含一个正整数n(1<n<30),表示只剩下一个桃子的时候是在第n天发生的。
Output 对于每组输入数据,输出第一天开始吃的时候桃子的总数,每个测试实例占一行。
Sample Input 2 4
Sample Output 4 22 |
这题用了两种方法来做,一个是用的循环累加,另一个是递归,第二个个人感觉不太好些,没写出来,然后找男朋友写的,发现倒过来就好理解了,逆向思维来做。最近在看C语言的课本,复习到了函数,所以两种方法都用函数写的。然后还要一种方法做这题,就是高中数学学的等比数列,最后写出一个总的公式,直接套用就OK!
#include<stdio.h>
/*int pangtao(int n)
{
int p[100];
p[n]=1;
for(int i=n;i>0;i--)
p[i-1]=2*(p[i]+1);
return p[1];
}
int main()
{
int a;
int pangtao(int);
while(~scanf("%d",&a))
{
printf("%d\n",pangtao(a));
}
return 0;
}*/
int peach(int n)
{
if(n==1)
return 1;
else
return (peach(n-1)+1)*2;
}
int main()
{
int a;
int peach(int);
while(~scanf("%d",&a))
{
printf("%d\n",peach(a));
}
return 0;
}
运行结果: