[고전 알고리즘]: 토끼 번식 문제

1448 단어 알고리즘
태 어 난 지 이틀 만 에 매일 한 마리 의 속도 로 번식 하 는 동물 이 있다. 어느 날 이런 동물 (이 동물 이 태 어 나 자마자 셋째 날 부터 후손 을 번식 하기 시작 했다) 이 있다 고 가정 하면 11 일 째 까지 모두 몇 마리 가 있 을 까?
아주 현명 한 사고 가 있 습 니 다. 사고 과정 은 다음 과 같 습 니 다. 우 리 는 N 일 째 토끼 가 어떻게 왔 는 지 생각 합 니 다. 먼저 N - 1 일 째 토끼 는 N 일 까지 살아 남 고 N - 2 일 째 토끼 는 N 일 째 에 번식 하지 않 기 때문에 우 리 는 하나의 전달 공식 을 얻 을 수 있 습 니 다. (N 일 째 토끼 를 F (N) F (N) = F (N - 1) + F (N - 2).
이 배달 공 시 를 받 은 후에 우 리 는 코드 를 쓸 수 있다.
#include <iostream>
using namespace std;
int fact(int n){
    if(n==1 || n==2){
        return 1;
    }
    else
    return fact(n-1) + fact(n-2);

}
int main(){
    int n = 11;
    cout<<fact(n)<<endl;
}

결 과 를 얻 으 려 면 그림 과 같다.
이런 문 제 를 통 해 우리 가 얻 을 수 있 는 결론 은 바로 전달 관계 가 매우 중요 하 므 로 반드시 잘 찾 아야 한다. 다른 코드 의 작성 은 간단 한 재 귀 문제 의 해결 이다.

좋은 웹페이지 즐겨찾기