猴子吃桃问题(15 分)
一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?
输入格式:
输入在一行中给出正整数N(1<N≤10)。
输出格式:
在一行中输出第一天共摘了多少个桃子。
输入样例:
3
输出样例:
10
import java.util.Scanner;
public class Main{
private static int n;
public static void main(String[] args) throws Exception {
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
Peach(1);
// int k=1,sum=0;
// if(n>1&&n<=10){
// for(int i=n-1;i>0;i--){
// k=2*k+1;
// sum+=k;
// }
// }else
// throw new Exception();
// System.out.println(sum);
}
static int Peach(int k)
{
int sum=0;
if (n==k)
{
return 1;
}
else
{
sum=Peach(k+1);//求下一天桃子的数量
sum=(sum+1)*2; //第n天桃子的数量
}
if (1==k)
{
System.out.print(sum);
}
return sum;//返回第n天桃子的数量
}
}
#include <stdio.h>
int n;
int peach(int k){
int sum=0;
if(n==k)
return 1;
if(k<n){
sum=peach(k+1);
sum=(sum+1)*2;
}
if(1==k){
printf("%d\n",sum);
}
return sum;
}
int main(void)
{
scanf("%d",&n);
peach(1);
return 0;
}