猴子吃桃问题
时间限制:
3000 ms | 内存限制:
65535 KB
难度:
0
-
描述
-
有一堆桃子不知数目,猴子第一天吃掉一半,又多吃了一个,第二天照此方法,吃掉剩下桃子的一半又多一个,天天如此,到第m天早上,猴子发现只剩一只桃子了,问这堆桃子原来有多少个? (m<29)
-
输入
-
第一行有一个整数n,表示有n组测试数据(从第二行开始,每一行的数据为:第m天);
输出
- 每一行数据是桃子的总个数 样例输入
-
2 3 11
样例输出
-
22 6142
-
第一行有一个整数n,表示有n组测试数据(从第二行开始,每一行的数据为:第m天);
这个题比较简单,有两种方法....
//循环模拟
#include<stdio.h>
int main()
{
int t,i,a,s;
scanf("%d",&t);
while(t--)
{
s=1;
scanf("%d",&a);
for(i=1;i<=a;++i)
{
s=(s+1)*2;//循环累加
}
printf("%d\n",s);
}
return 0;
}
公式法比较简单,但是推导需要一点计算....
//推导出公式....
#include<stdio.h>
#include<math.h>
int main()
{
int a,b,t;
scanf("%d",&t);
while(t--)
{
scanf("%d",&a);
b=3*pow(2,a)-2;
printf("%d\n",b);
}
return 0;
}