一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?
输入格式:
输入在一行中给出正整数N(1<N≤10)。
输出格式:
在一行中输出第一天共摘了多少个桃子。
思路:①可以使用for函数来倒推找出第一天摘了桃子的数量
#include<stdio.h>
int fun(int n){
int peach=1;
for(int i=n;i>1;i--){
peach=2*(peach+1);
}
return peach;
}
int main(void){
int n;
scanf("%d",&n);
printf("%d\n",fun(n));
return 0;
}
②可以使用递归来推算出第一天摘的桃子的数量
#include<stdio.h>
//求第一天摘下桃子的个数
int Peach(int n){
if(n>1){
return 2*Peach(n-1)+2;
}
else{
return 1;
}
}
int main(void){
int n;
scanf("%d",&n);
printf("%d\n",Peach(n));
return 0;
}