学习目标:
兔子生崽问题。
学习内容:
兔子生崽问题。假设一对小兔的成熟期是一个月,即一个月可长成成兔,那么如果每对成兔每个月都可以生一对小兔,一对新生的小兔从第二个月起就开始生兔子, 试问从一对兔子开始繁殖,一年以后可有多少对兔子?请编程求解该问题。 **输出格式要求:"\nTotal = %d\n" "%4d" 程序运行示例如下: 1 2 3 5 8 13 ** 34 55 ** *** *** Total = *** (此程序只有一个测试用例,为避免泄漏答案,具体数值用*代替)
易知应该使用菲波那切数列
因为小兔子比大兔子晚一个月
所以每个月的兔子数为上个月加上上个月
为菲波那切数列:1 1 2 3 5 8 13 21 ··········
程序示例如下:
#include <stdio.h> #include <stdlib.h> int main() { int a=1,b=1,Total,i,c; printf(" 1"); for(i=1;i<12;i++) { c = a+b;//本月(用c表示)为上上个月(a)和上个月(b)的和。 a = b; b = c;//更新数据使a,b永远为上个月的兔子数和上上个月的兔子数。 printf("%4d",b); } printf("\nTotal = %d\n",b); }