编写一个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