两种方式求解,递归和归纳,习惯用哪种都可以。
参考代码如下:#include
#include
#include
//假如在第n天准备吃的时候只剩一个桃子,可以推算出一个公式:
//sum(n - 1) = sum(n) / 2 - 1,从而推算出
//sum(n) = (sum(n - 1) + 1) * 2
//当n = 1时,sum(1) = 1;
int process(int n)
{
int sum = 0;
if (n == 1)
sum = 1;
else
sum = (process(n - 1) + 1) * 2;
return sum;
}
int main(void)
{
int input[30];
int index = 0;
int n;
while (scanf("%d", &n) != EOF)
{
input[index++] = n;
}
int res = 1;
int i, j;
for (i = 0; i
{
//1 递归求解
res = process(input[i]);
printf("%d\n", res);
/*2 归纳法求解
for (j = 1; j
{
res = (res + 1) * 2;
}
printf("%d\n", res);
res = 1;
*/
}
return 0;
}