猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了1个,第二天早上又将剩下的桃子吃掉一半,又多吃了1个。以后每天早上都吃了前一天剩下的一半加1个。到第n天早上想再吃时,只剩下k个桃子了。求第一天共摘了多少桃子。
输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试输入2个正整数n,k(1≤n≤1000,0≤k<10)。
输出格式:
对于每组测试,在一行上输出第一天共摘了多少个桃子。
输入样例:
1
101 3
输出样例:
6338253001141147007483516026878
#include <stdio.h>
int main()
{
int T,int day,i;
double x1,x2; /*定义 day、x1、x2 3 个变董为基本整型*/
scanf("%d",&T);
for(i=0;i<T;i++)
{
x1 = 0;
scanf("%d%lf",&day,&x2);
while(day>1)
{
x1=(x2+1)*2; /*第一天的桃子数是第二天桃子数加1后的2倍*/
x2=x1;
day--; /*因为从后向前推所以天数递减*/
}
printf("the total is %g\n",x1); /* 输出桃子的总数*/
}
return 0;
}