C语言编程:写出斐波那契数列的前40个数

求高手帮帮忙吧~~

#include <stdio.h>

 int main()

{

int f1 = 1;

int f2 = 1;

int f3,i;

printf("%d\t%d\t",f1,f2);

for(i = 1; i <= 38; i++)

{

f3 = f1 + f2;

printf("%d\t",f3);

f1= f2;

f2= f3;

}

printf("\n");

return 0;

}

扩展资料:

在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)

递推公式

斐波那契数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...

如果设F(n)为该数列的第n项(n∈N*),那么这句话可以写成如下形式::F(n)=F(n-1)+F(n-2)

显然这是一个线性递推数列。

平方与前后项

从第二项开始,每个偶数项的平方都比前后两项之积少1,每个奇数项的平方都比前后两项之积多1。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-05-18
一楼的递归太多,栈溢出了。
main()
{
long fib[40] = {1,1};
int i;
for(i=2;i<40;i++)
{
fib[i] = fib[i-1]+fib[i-2];
}
for(i=0;i<40;i++)
{
printf("F%d==%d\n", i, fib[i]);
}
return 0;
}
第40项的范围还在long内,不会溢出。
第40项的值为:102334155本回答被提问者采纳
第2个回答  2006-07-23
#include<stdio.h>

int fun(int n)
{
if(n == 1 || n == 2) return 1;
else return fun(n-1) + fun(n-2);
}

void main()
{
int i;
for(i = 1; i <= 40; i++){
printf("%d\n", fun(i));
}
}

下面的请不要没有依据就乱说,先运行再说!
第3个回答  2006-07-23
呵呵,抱歉,没有留意到其实没有溢出。
第4个回答  2006-07-22
楼上的程序看到我头疼!

C语言编程:写出斐波那契数列的前40个数
int main(){ int f1 = 1;int f2 = 1;int f3,i;printf("%d\\t%d\\t",f1,f2);for(i = 1; i <= 38; i++){ f3 = f1 + f2;printf("%d\\t",f3);f1= f2;f2= f3;} printf("\\n");return 0;}

...按每行输出5个数的形式输出fibonacci数列的前40项
}int main(void) { unsigned __int64 f[MAX]; int i; fibonacci (f, MAX); printf ("前%d项斐波那契数列(自F0起):\\n"); for (i=0; i<=MAX; i++) { printf ("%I64u\\t", f[i]); if ((i+1)%5==0) \/*5个数换行*\/ printf ("\\n"); }pri...

用数组来求解斐波那契数列的前40项
for(i=3;i<=40;i++)x[i]=x[i-1]+x[i-2]; for(i=1;i<=40;i++)printf("%d ",x[i]);}

请输出斐波那契数列前四十项
回答:#include <stdio.h> void main() { int i=1,F1=1,F2=1; printf("F1=1\\nF2=1\\n"); while(i<=19) { F1=F1+F2; F2=F2+F1; printf("F1=%d\\nF2=%d\\n",F1,F2); i=i+1; } }

Fibonacci数列前40个数是多少
2、1346269、2178309、3524578、5702887、9227465、14930352、24157817、39088169、63245986。斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称“兔子数列”,其数值为:1、12、3、5、8、13、21、34。1202年,斐波那契在《...

谁能给我斐波那契数列的c语言,要用for循环嵌套的
C语言,用for循环,求Fibonacci数列前40个数的程序如下:#include int main(void){ int a=1,b=1,t=0; printf("%d,",a); printf("%d,",b); for(int i=0;i<38;i++){ t=a+b; printf("%d,",t); a=b; b=t; } return 0;} ...

用递归法求斐波那契数列前40项。
用递归法求斐波那契数列前40项方法为: 1、首先,对非法下标进行判断。 2、定义出递归调用的出口n=1或n=2,直接返回1。 3、使用递归直接调用自身即可,不需要使用数组存储,而是使用压入栈 的数据。注意idea中侧边会显示递归的小圈。 4、添加测试函数,输出前5项与前10项。 5、测试结果如下。 注意事项: 斐波那契...

c语言程序 数列 ;1 1 2 3 5 8 。。这前40个数字,按照每一行5个数字输出...
这个数列叫做斐波那契数列 代码如下:include<stdio.h> void fibo(int n){ int i,count=2;double x1,x2,x; x1=1; x2=1;printf("%6.0f\\t%6.0f\\t",x1,x2);for(i=1;i<=(n-2);i++){ x=x1+x2;printf("%6.0f\\t",x);x1=x2;x2=x;count++;if(count%5==0)printf("...

C语言编程:求斐波那契数列前40项的值用do+while循环实现
在这个例子中,我们使用 do+while 循环来计算斐波那契数列前 40 项的值,使用三个变量 f1、f2、f3 来保存计算过程中的数值,初始值分别为 0、1、0。每次循环计算出 f3 的值,然后将 f2 的值赋给 f1,f3 的值赋给 f2,即可继续计算下一项。需要注意的是,我们在循环内部使用 i 计数器来记录...

指针写斐波那契数列的前40项
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025,121393,196418,317811,514229,832040,1346269,2178309,3524578,5702887,9227465

相似回答