题目:
有一对兔子,从出生后第3个月起都个月都生一对兔子,小兔子长到第3个月又生一对兔子。假设所有兔子都不死,问每个月的兔子总数为多少?
#include "stdio.h"
#include "math.h"
int main()
{
float s = 0;
int n;
scanf("%d",&n);
//利用了斐波那契数列公式
s = 1/sqrt(5)*(pow((1+sqrt(5))/2,n)-pow((1-sqrt(5))/2,n));
//这步用来消除sqrt带来的误差
if(s>(int)s)
printf("s = %d",(int)s+1);
else
printf("s = %d",(int)s);
return 0;
}
这个直接利用了斐波那契的通项公式进行运算,效率比较高但是不容易被理解,斐波那契数列的通项公式就放在下面了,大家自行阅读,如果文章有用,不妨点个小小的赞



