#include <iostream.h>
int main()
{
int f[100], n, i
printf("请输入n:")
scanf("%d", &n)
f[0] = 0f[1] = 1
for(i=2i<=ni++)
f[i] = f[i-1] + f[i-2]
for (i=1i<=ni++)
{
printf("%8d", f[i])
if( i%5 == 0) printf("\n")//如果已经输出了5个整数倍数个,则换行
}
return 0
}
费娜波契数列是一个很有名的数列,下面我将先给出费娜波契数列:a1=1,
a2=2,
a3=3,
a4=5,
a6=8
…
an=an-1+am-2
这样一个数列在很多方面都很出名,例如在计算机编程中斐波那契数列的兔子问题
还有在数学系中高等代数的线性递归关系问题,先说说兔子问题:
兔子问题是这样的:
有一对兔子,从出生后第三个月起每个月都生一对兔子。小兔子长到第三个月后每个
月又生一对兔子。假设所有的兔子都不死,问每个月的兔子总对数为多少?
在c++编程中的循环语句中大多数的教材都有对它地介绍,在此不做进一步说明。
另外一个是在高等数学中的解法:
an=an-1+an-2
所以其特征多项式为:
f(x)=x2-x-1
得其两根:
x1=(1+√5)/2
x2=(1-√5)/2
设an=d1*(x1的n次方)+d2*(x2的n次方)且
d1+d2=1
d1*x1+d2*x2=1
解方程即可。
你程序的输出不可能是你给的结果输出在第二个for循环里的,而第二个for循环是在 i 能被5整除的时候才输出
两个for 循环很好理解
第一个 for 循环计算数列每一项
第二个 for 循环是打印数列项
两个循环彼此没有联系