#include<stdio.h>
//非递归做法
int main()
{
int n,x,y,sum,month=1;
scanf("%d",&n);
x=0,sum=y=1;
while(z<n)
{
sum=x+y; //sum为兔子的总数
x=y;
y=sum;
month++; //每次加完就把值赋给x和y
}
printf("%d",month);
return 0;
}
/* 列表说明关系
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; //i=1,0,1,0,1,0,1,0......
if (month <= 2){
count [i]=number;
continue;
}
number = count[0] + count[1];
count[0] = count [1];
count[1] = number;
}
if (number==1) //月份最少为1
month ++;
printf("%d\n",month);
return 0;
}
x y z分别是第n-2,n-1,n项