用c++语言编程输出Fibonacci数列的前40个数 20
按Fibonacci数列规则,它的第一项是0,第二项是1。从第三项开始,当前项是前两项之和,即数列结构是:0,1,1,2,3,5,8...。可以自定义一个函数求各项之值(为提高时效,不用递归),代码如下:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include <iostream>
using namespace std;
int myfib(int n){
if(n==1 || n==0)
return n;
for(int a=0,b=1,i=1;i<n;b+=a,a=b-a,i++);
return b;
}
int main(int argc,char *argv[]){
for(int t=0,i=0;i<40;i++){
cout.width(8);
cout << myfib(i) << (++t%10 ? ' ' : '\n');
}
return 0;
}
运行结果如下:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include <iostream>
using namespace std;
int myfib(int n){
if(n==1 || n==0)
return n;
for(int a=0,b=1,i=1;i<n;b+=a,a=b-a,i++);
return b;
}
int main(int argc,char *argv[]){
for(int t=0,i=0;i<40;i++){
cout.width(8);
cout << myfib(i) << (++t%10 ? ' ' : '\n');
}
return 0;
}
扩展资料:
从第二项开始,每个偶数项的平方都比前后两项之积少1,每个奇数项的平方都比前后两项之积多1。
如:第二项1的平方比它的前一项1和它的后一项2的积2少1,第三项2的平方比它的前一项1和它的后一项3的积3多1。
(注:奇数项和偶数项是指项数的奇偶,而并不是指数列的数字本身的奇偶,比如从数列第二项1开始数,第4项5是奇数,但它是偶数项,如果认为5是奇数项,那就误解题意,怎么都说不通)
证明经计算可得:[f(n)]^2-f(n-1)f(n+1)=(-1)^(n-1)
#include <iostream>
using namespace std;
int main(void){
int a=1,b=1;//设置两个初始值此时a=1,b=1
cout<<a<<ends<<b<<ends;//输出初始值
for (int i=2;i<40;i++){//循环计算输出第3-40个数
b=b+a;//计算前两位之和放在b中第一轮a=1,b=2第二轮a=1,b=3
cout<<b<<ends;//输出计算后b的数
a=b-a;//用b-a就是计算之前b的数,放入a中,第一轮a=1,b=2 第二轮a=2,b=3 以此类推
}
return 0;
}
main()
{
int i,f1=1,f2=1,fib[40];
fib[0]=f1;
fib[1]=f2;
for(i=2;i<40;i++)
{
fib[i]=f1+f2;
f1=f2;
f2=fib[i];
}
for(i=0;i<40;i++)
{
printf("%d\t",fib[i]);
}
}
希望能帮到你。