ocrosoft 程序设计提高期末复习问题M 递归求猴子吃桃
http://acm.ocrosoft.com/problem.php?cid=1172&pid=12
题目描述
猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半另加一个。到第n天早上想再吃时,就只剩下一个桃子了。求第1天共摘了多少个桃子
输入
n的值
输出
剩下的桃子数量
样例输入
10
样例输出
total=1534
题解:
运用递归的思想,定义的A的函数代表的是第n天开始的时候所有的桃子,x的值从1开始到n结束。
代码:
#include <bits/stdc++.h>
using namespace std;
int n;
int A(int x)
{
if(x == n) return 1;
return 2*(A(x + 1) + 1);
}
int main()
{
while(cin>>n)
{
printf("total=%d\n",A(1));
}
return 0;
}

浙公网安备 33010602011771号