C: 계단 을 오르다

2854 단어 c
총 시간 제한: 1000 ms 메모리 제한: 65536 kB 설명 계단 은 n (100 > n > 0) 단계 가 있 고 계단 을 올 라 갈 때 한 걸음 에 1 단계 올 라 갈 수도 있 고 한 걸음 에 2 단계 올 라 갈 수도 있 으 며 한 걸음 에 3 단계 올 라 갈 수도 있 습 니 다. 프로 그래 밍 계산 은 모두 몇 가지 서로 다른 방법 이 있 습 니까?입력 한 줄 마다 테스트 데 이 터 를 포함 합 니 다. 즉, 계단 수 n 입 니 다.마지막 행동 0 은 테스트 가 끝 났 음 을 나타 낸다.모든 줄 의 출력 이 한 줄 의 입력 에 대응 하 는 결 과 를 출력 합 니 다. 즉, 주 행 법의 수 입 니 다.샘플 입력 12340 샘플 출력 1247
해석: 피 보 나치 수열 과 유사 한 귀속 방법.관건 은 재 귀 규칙 을 찾 는 것 이다.
1 단계 계단 이 라면, 모두 1 가지 방법 이 있다.
2 단계 계단 이 라면, 모두 11, 2 가지 방법 이 있다.
3 단계 계단 이 라면 111, 12, 21, 3 등 4 가지 방법 이 있다.
4 단계 계단 이 라면 1 단계 에서 4 단계 로 바로 올 라 가 거나 2 단계 에서 4 단계 로 올 라 가 거나 3 단계 에서 4 단계 로 올 라 갈 수 있 으 며 모두 f (1) + f (2) + f (3) 가지 방법 이 있다.
5 단계 계단 이 라면 각각 2 단계, 3 단계, 4 단계 에서 5 단계 로 올 라 갈 수 있 으 며, 총 f (2) + f (3) + f (4) 에서 걸 을 수 있다.
  ……
그래서 우 리 는 다음 과 같은 귀속 서열 을 얻 었 다.  f(n) = f(n-1) + f(n-2) + f(n-3);
첨부 코드 는 다음 과 같 습 니 다:
 
#include <iostream>

#include <math.h>

using namespace std;



int main()

{

    int n;

    int f[101];

    int i=0;

    while(cin>>n)

    {

        if(n==0)

            break;

        f[1]=1;

        f[2]=2;

        f[3]=4;



        for(i=4;i<=n;i++)

            f[i]=f[i-1]+f[i-2]+f[i-3];



        cout<<f[n]<<endl;



    }



    return 0;

}

 
 

좋은 웹페이지 즐겨찾기