귀속_개구리 계단 뛰기 (변태판)
제목 설명
개구리 한 마리가 한 번에 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 ) = 22f( n - 2 )
= 2*2*2f( (n-2) - 1 ) = 23f( n - 3 )
=2*2*2*2......*2f( (n-(n-3)) -1) = 2n-2f( n - (n-2) ) = 2n-2f( 2 )
=2*2*2*2......*2f( (n-(n-2)) -1) = 2n-1f( n - (n-1) ) = 2n-1f( 1 ) = 2n-1
public int JumpFloor3(int target) {
return (int) Math.pow(2, target - 1);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.