계단의 총 계단 수는 n입니다. 사람은 한 번에 1, 2 또는 3단계를 건너뛰어 다음 층에 도달할 수 있습니다. 목표는 그렇게 함으로써 다음 층에 도달할 수 있는 방법의 수를 찾는 것입니다.
i번째 단계에 도달하려면 i-1번째 단계( 1단계 건너뛰기), i-2번째 단계(2단계 건너뛰기) 또는 i-3번째 단계( 3단계 건너뛰기 ).
예를 들어 이해합시다.
입력
N=3 steps
출력
Count of ways to reach the nth stair using step 1, 2 or 3 are: 4
설명
There are total 3 steps Jump from start ( skip 3 ) : 3 step Jump from 1’st step (skip 2): 1+2 Jump from 2nd step (skip 1): 2+1 No skip 1+1+1
입력
N=6 steps
출력
Count of ways to reach the nth stair using step 1, 2 or 3 are: 24
설명
There are total 6 steps Ways: 1+1+1+1+1+1, 2+1+1+1+1, 3+1+1+1, 3+1+2, 3+2+1, 3+3 and so on.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
총 단계 수로 정수 단계를 사용하고 있습니다.
-
계단식 단계(int 단계) 함수는 모든 단계를 입력으로 사용하고 점프를 하든 하지 않든 다음 층에 도달하는 여러 가지 방법을 반환합니다.
-
이러한 방식으로 초기 변수 개수를 0으로 간주합니다.
-
숫자가 0이면 1을 반환합니다.
-
걸음 수가 1인 경우 편도입니다.
-
걸음 수가 2인 경우 2가지 방법(1+1 또는 2)입니다.
-
그렇지 않으면 =계단_단계(단계-3)+계단_단계(단계-2)+단계_단계(단계-1).
(재귀적 방법)
예시
#include <iostream> using namespace std; int stairs_step(int steps){ if(steps == 0){ return 1; } else if(steps == 1){ return 1; } else if (steps == 2){ return 2; } else{ return stairs_step(steps - 3) + stairs_step(steps - 2) + stairs_step(steps - 1); } } int main(){ int steps = 5; cout<<"Count of ways to reach the nth stair using step 1, 2 or 3 are: "<<stairs_step(steps); return 0; }
출력
위의 코드를 실행하면 다음 출력이 생성됩니다 -
Count of ways to reach the nth stair using step 1, 2 or 3 are: 13