토끼 한 쌍은 생후 3 개월부터 매달 한 쌍의 토끼를 낳습니다. 작은 토끼가 3 개월까지 자라면 매달 한 쌍의 토끼를 낳습니다. 토끼가 죽지 않았다면, 첫 달에 태어난 한 쌍의 토끼가 총 토끼 수가 N 쌍에 도달하기 전에 적어도 처음 몇 개월까지 번식해야 할 수 있습니까?
입력 형식 :
한 줄을 초과하지 않는 10000
양의 정수 를 입력하십시오 N
.
출력 형식:
토끼의 총 수가 한 줄에 N에 도달하는 데 필요한 최소 개월 수를 출력합니다.
입력 샘플 :
30
샘플 출력 :
9
암호:
# include <stdio.h>
# include <stdlib.h>
int main() {
int N;
scanf("%d",&N);
// 1,1,2,3满足斐波那契数列
int a = 1,b = 1,max = 1,temp,month = 1;
if (N == 1) {
printf("%d",month);
}else {
month = 2;
while(max < N) {
temp = a;
a += b;
b = temp;
max = (a >= b) ? a : b;
month += 1;
}
printf("%d",month);
}
return 0;
}
스크린 샷 제출 :
문제 해결 아이디어 :
N=1
출력은 0이 아니라 1 이라는 점에 유의해야합니다 . 나머지는 여전히 첩의 문제입니다!