/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?兔子的规律为数列1,1,2,3,5,8,13,21....*/
#include <stdio.h> //f(n) = 2f(n-1) - (f(n-1)-f(n-2)) = f(n-1) + f(n-2);\ 递归实现 int numbers(int n); int main(int argc, const char * argv[]) { //第n个月 int n = 8; printf("第%i个月兔子的总数是:%i\n", n, numbers(n)); return 0; } int numbers(int n) { if (n == 1 || n == 2) { return 1; }else{ return numbers(n-1)+numbers(n-2); } }
时间: 2024-10-19 01:31:01