天天看點

HDU - 2018 母牛的故事

題目

有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請程式設計實作在第n年的時候,共有多少頭母牛?

Input

輸入資料由多個測試執行個體組成,每個測試執行個體占一行,包括一個整數n(0

想法

每頭剛出生的小母牛在第四年開始每年生一頭,那這就類似于斐波那契數列問題(fibonacci)。

回顧一下斐波那契數列

int fibonacci(int n){
    if(n==||n==)return ;
    else return fibonacci(n-)+fibonacci(n-); 
}
           

此題,小母牛在第四年就會像她媽媽一樣一年生一個小母牛,是以f(n-1)表示上一年的母牛數,那麼f(n-2)就表示三年前的牛數,也就是說,f(n-2)就是第n年具有生育能力的母牛!

那麼上一年的母牛加上新生的就等于第n年的母牛。

java代碼

import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
        Scanner it = new Scanner(System.in);
        while(it.hasNext()) {
            int n = it.nextInt();
            if(n==)break;
            Main x = new Main();         //建立對象
            System.out.println(x.fn(n));
        }
    }
    int fn(int n) {
        if(n<=) return n;
        else return fn(n-)+fn(n-);
}
}
           

c代碼

#include<stdio.h>
int fn(int n){
    if(n<=)return n;
    else return fn(n-)+fn(n-);
}
int main()
{
    int n;
    while(scanf("%d",&n)){
    if(n==)break;
    printf("%d\n",fn(n));
    }
}
           

個人部落格:陪你一起終身學習!|嶽金钊&個人部落格

繼續閱讀