猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。编程求第一天共摘了多少桃子。
#include<iostream>
using namespace std;
int peach(int); // 摘桃
int main()
{
cout << peach(10) << endl;
system("pause");
return 0;
}
int peach(int n)
{
int c;
if (n == 1)
c = 1;
else
c = (peach(n - 1) + 1) * 2;
return c;
}
// 总结: 递归的思想 逆向思维
// D10 = 1
// D9 /2 -1=D10 //D9= 4
// D8 /2 -1=D9 //D8= 10
// D7 /2-1 =D8 //D7= 22
// ....
结果如下:
1543