编写一个C程序,用于打印斐波那契数列的前10个数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写一个C程序,用于打印斐波那契数列的前10个数相关的知识,希望对你有一定的参考价值。

……
通常的教材上讲到递归时,引用“斐波那契数列”的例子,其实我感觉这是一个误导。“斐波那契数列”的递归解决是效率最低的。

【递归版】
//打印斐波那契数列的前10项

#include <stdio.h>
#define MAX 10

int fib(int n);

int main()
int i;
printf("斐波那契数列的前10项是:\n");
for(i=1;i<=MAX;i++)
printf("%d\t",fib(i));

return 0;


int fib(int n)
return n<3?1:(fib(n-1)+fib(n-2));


【迭代版】
//打印斐波那契数列的前10项
#include <stdio.h>
#define MAX 9

int main()
int fib[MAX],i=2;
fib[0]=fib[1]=1;
printf("斐波那契数列的前10项是:\n%d\t%d\t",fib[0],fib[1]);
while(i<10)
fib[i]=fib[i-1]+fib[i-2];
printf("%d\t",fib[i]);
i++;

return 0;
参考技术A ……
通常的教材上讲到递归时,引用“斐波那契数列”的例子,其实我感觉这是一个误导。“斐波那契数列”的递归解决是效率最低的。
【递归版】
//打印斐波那契数列的前10项
#include
<stdio.h>
#define
MAX
10
int
fib(int
n);
int
main()
int
i;
printf("斐波那契数列的前10项是:\n");
for(i=1;i<=MAX;i++)
printf("%d\t",fib(i));

return
0;

int
fib(int
n)
return
n<3?1:(fib(n-1)+fib(n-2));

【迭代版】
//打印斐波那契数列的前10项
#include
<stdio.h>
#define
MAX
9
int
main()
int
fib[MAX],i=2;
fib[0]=fib[1]=1;
printf("斐波那契数列的前10项是:\n%d\t%d\t",fib[0],fib[1]);
while(i<10)
fib[i]=fib[i-1]+fib[i-2];
printf("%d\t",fib[i]);
i++;

return
0;
参考技术B #include <stdio.h>

int main()

long int f1=1,f2=1;
int i;
for(i=1;i<=5/*这里是个数配置*/;i++)

printf("%12ld %12ld",f1,f2);
if(i%2==0) printf("\n");
f1=f1+f2;
f2=f1+f2;

getchar();

请问斐波那契数列的前n项和公式是啥?

斐波那契数列中每两个相邻的数字的商都是1.618(黄金分割),那么可不可以用等比数列的前n项和?

这个数列是由13世纪意大利斐波那契提出的的,故叫斐波那契数列。该数列由下面的递推关系决定:
F0=0,F1=1
Fn+2=Fn + Fn+1(n>=0)
它的通项公式是
Fn=1/根号5[(1+根号5)/2]的n次方-[(1-根号5)/2]的n次方(n属于正整数)

斐波那契数列有许多神奇的性质.
一斐波那契数列中Fn/Fn+1的渐进值是(√5-1)/2 (黄金分割,≈0.618)

Fn+1/Fn的渐进值是(√5+1)/2 ≈1.618
楼主的理解有误,这是极限比值,也就是说项数n越大,越接近这个结果,斐波那契数列本身不是等比数列!其本质是差分方程。具体解法可参考有关资料。

二m整除n时,Fm整除Fn

三设a,b为自然数,由递推关系
F0=0,F1=1
Fn+2=aFn+1 + bFn(n>=0)

产生的序列的通项公式为
Fn=1/√L[(a+√L)/2]的n次方-[(1-√L)/2]的n次方 (L=a^2+4b,n>=1) ,并且具有性质:当 m 整除n时,Fm整除Fn 。
参考技术A 这个数列是由13世纪意大利斐波那契提出的的,故叫斐波那契数列,它有许多神奇的性质.
它的通项公式是
an=1/根号5[(1+根号5)/2]的n次方-[(1-根号5)/2]的n次方(n属于正整数)

参考资料:初中数学奥林匹克实用教程第一册(湖南师范大学出版社)第193页

斐波那契数列中每两个相邻的数字的商都是1.618(黄金分割),但是这个数列的和却是数学史上的难题(虽然无止尽,但它的和却是一个可以解开的迷),这个数列是无比的神秘。
参考技术B an=1/根号5[(1+根号5)/2]的n次方-[(1-根号5)/2]的n次方(n属于正整数)

可以用特征根求解,过程很简单
参考技术C 斐波那契数列的前n项和公式是
a1=1,a2=1,
An=(An-2)+(An-1) (当n》2时)

以上是关于编写一个C程序,用于打印斐波那契数列的前10个数的主要内容,如果未能解决你的问题,请参考以下文章

试编一程序,输出斐波那契数列中的前10项。(斐波那契数列指的是这样一个数列:1

用java编写程序,输出斐波那契数列的前10个数。

请问斐波那契数列的前n项和公式是啥?

c语言,编程实现,求斐波那契数列,1,1,2,3,5,8,......的前20项及前20项和

编写一递归函数求斐波那契数列的前40项

如何用C语言输出斐波那契数列的前n项