(递归)猴子吃桃

版权声明:所有内容仅供大家学习与复习使用,请勿用于任何商业用途;维特根斯坦曾说过,凡可说的,皆无意义。凡有意义的,皆不得不以荒唐的语言传递其意义。我十分赞同。 https://blog.csdn.net/qq_40828914/article/details/89044434

题目:

猴子买一堆桃不知个数,每天吃桃子一半多一个,第n天只剩一个桃,问一开始买了几个桃。输入整数n(2<=n<=30)。输出买的桃的数量。
样例输入2,输出4。
样例输入3,输出10。

分析与解答:

现在是知道第n天剩的桃求第1天的桃,第i天的桃等于(第i+1天的剩的桃+1)*2,因此有: f ( i ) = ( f ( i + 1 ) + 1 ) 2 f(i)=(f(i+1)+1)*2 ,结束条件是 f ( n ) = 1 f(n)=1

#include<iostream>
using namespace std;
int n;
int f(int x){
	if(x==n) return 1;
	else return (f(x+1)+1)*2;
}
int main(){
	cin>>n;
	cout<<f(1);
	return 0;
} 

猜你喜欢

转载自blog.csdn.net/qq_40828914/article/details/89044434