有一道题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
其实这个就是数学上,最经典的,用数学表达式就是f(x) = f(x - 1) + f(x - 2) f(2)=f(1)=1;数据规律为数列1,1,2,3,5,8,13,21....,其实实现方法有很多。其中用递归,这样会让程序简化很多。用C程序实现代码如下:
#include <stdio.h>
int get_tu_zi_count(int); int main(int argc,char *argv[]) { int i,count; for (i=1;i<21;i++) { count = get_tu_zi_count(i); printf("%d ",count); } system("pause"); return 0; }
int get_tu_zi_count(int count) { if (count == 2 || count == 1) { return 1; } else { return get_tu_zi_count(count - 1) + get_tu_zi_count(count - 2); } }
|
此程序打印出1-20的数列。
阅读(1554) | 评论(0) | 转发(0) |