タイトル説明
カエルは、クラス1レベルにジャンプすることができます。また、レベル2に飛び乗っすることができます...... nはまた、ステージの上にジャンプすることができます。カエルはどのように多くのジャンプのn級レベルの合計を求めて飛び込みました。
私の解決策
public int JumpFloor1(int target) {
if (target == 1) {
return 1;
} else {
int total = 0;
for (int i = 1; i < target; i++) {
total += JumpFloorII(target - i);
}
return total+1;
}
}
ギャングスター・ソリューション
①F(N)= F(N-1)+ F(N-2)+ F(N-3)+ ... + F(2)+ F(1)
②F(N-1)= F(N-2)+ F(N-3)+ ... + F(2)+ F(1)
①②、F(N)= 2F(N-1)から製造されました。
public static int jumpFloor2(int target) {
if (target == 1) {
return 1;
} else {
return 2 * jumpFloor2(target - 1);
}
}
究極のソリューション
F(N)= 2F(N-1)(N> = 2)
F(N)= 1(N = 1)
再帰方程式が解かれます。
F(N)= 2F(N - 1)
2×2F =(( -n 1) - 1)= 2 2 、 F(N - 2)
2×2 = * 2F(( -n 2) - 1)= 2 3 、 F(N - 3)
2×2 = 2 * 2 * ... * 2F(( -N (N-3))-1)= 2 N-2 、 F(N - (N-2))= 2 N-2 F(2)
2×2 = 2 * 2 * ... * 2F(( -N (N-2))-1)= 2 N-1 、 F(N - (N-1))= 2 N-1 、 F(1)= 2 N-1
public int JumpFloor3(int target) {
return (int) Math.pow(2, target - 1);
}