本文共 673 字,大约阅读时间需要 2 分钟。
一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?
输入在一行中给出一个不超过10000的正整数N。
在一行中输出兔子总数达到N最少需要的月数。
30
9
month | small | middle | big | sum |
---|---|---|---|---|
1 | 1 | 0 | 0 | 1 |
2 | 0 | 1 | 0 | 1 |
3 | 1 | 0 | 1 | 2 |
4 | 1 | 1 | 1 | 3 |
5 | 2 | 1 | 2 | 5 |
6 | 3 | 2 | 3 | 8 |
7 | 5 | 3 | 5 | 13 |
… |
//本人智商不够,通过列表格发现规律..//(看了其他人写的,这题应该是斐波那契数列?但是我太菜了不会写qwq)#includeint main(void){ int small=1, middle, big; int sum=1, month=1, N; scanf_s("%d", &N); if (N == 1) goto end; else { small = 0; middle = 1; big = 0; for (month = 2; sum < N; month++) { int temp; temp = middle; middle = small; big += temp; small = big; sum += small; } }end: printf("%d\n", month); return 0;}
转载地址:http://dnnlf.baihongyu.com/