n 天只剩下一個桃子了。蒜頭君想知道一開始買了多少桃子。
輸入格式
輸入一個整數 n(2≤n≤60),代表第 n 天只剩了一個桃子。
輸出格式
輸出買的桃子的數量。
樣例輸入1
2
樣例輸出1
4
樣例輸入2
3
樣例輸出2
10
import java.util.Scanner;
public class Main {
public static long f(int n, long sum){
if(n==1) return (long)sum;
return f(n-1,(long)(sum+1)*2);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
int n = input.nextInt();
long sum = 1;
System.out.println(f(n,(long)sum));
}
}
值得注意的點是sum應該用long型,因爲遞歸到後面比較大的時候,已經超過int型數據的範圍,測試的結果不對。第一次寫的時候,就是用int型,測試32的時候就沒有通過,輸出了最大的int型數據:2147483648 ,問了別人才知道,應該用long型。