1. 程式人生 > >7-27 兔子繁衍問題 (15 分)

7-27 兔子繁衍問題 (15 分)

7-27 兔子繁衍問題 (15 分)

一對兔子,從出生後第3個月起每個月都生一對兔子。小兔子長到第3個月後每個月又生一對兔子。假如兔子都不死,請問第1個月出生的一對兔子,至少需要繁衍到第幾個月時兔子總數才可以達到N對?

輸入格式:

輸入在一行中給出一個不超過10000的正整數N。

輸出格式:

在一行中輸出兔子總數達到N最少需要的月數。

輸入樣例:

30

輸出樣例:

9
/*  列表說明關係
month  1  2  3  4  5  6  7
number 1  1  2  3  5  8  13
規律:第n個月的兔子數是n-2月+n-1月的兔子的和
*/
#include <stdio.h>
int main (){
  int N,month=0,i,number=1;
  scanf("%d",&N);
  int count [2];
  while(number < N){
      month ++;
      i = month%2;
      if (month <= 2){
        count [i]=number;
       // printf("month = %d,number = %d\n",month,number);
        continue;
      }
      number = count[0] + count[1];
   //   printf("month = %d,number = %d\n",month,number);
      count[0] = count [1];
      count[1] = number;
  }
  if (number==1)        //月份最少為1
    month ++;
  printf("%d\n",month);
  return 0;
}