用c++语言编程输出Fibonacci数列的前40个数 20

 我来答
White_MouseYBZ
2017-06-29 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6426万
展开全部

按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;
}

运行结果如下:

TableDI
2024-07-18 广告
Excel一键自动匹配,在线免费vlookup工具,3步完成!Excel在线免费vlookup工具,点击58步自动完成vlookup匹配,无需手写公式,免费使用!... 点击进入详情页
本回答由TableDI提供
老冯文库
推荐于2017-06-14 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8733

向TA提问 私信TA
展开全部

C++程序:

#include <iostream>

using namespace std;

int main()
{
long f1=1, f2=1;
int i=3;

cout<<"1\t"<<f1<<endl;
cout<<"2\t"<<f2<<endl;

for(i=3; i<=40; i++)
{
f2 += f1;
f1 = f2 - f1;
cout<<i<<"\t"<<f2<<endl;
}

return 0;
}


运行结果:

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
你爱我妈呀
2019-11-15 · TA获得超过8.6万个赞
知道小有建树答主
回答量:686
采纳率:100%
帮助的人:25.6万
展开全部

//#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)

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
文耕实验室
2013-03-19 · TA获得超过210个赞
知道答主
回答量:70
采纳率:0%
帮助的人:83.4万
展开全部
//本程序在VC++6.0环境下运行通过
#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;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
曦翼稚鱼
2013-03-19
知道答主
回答量:15
采纳率:0%
帮助的人:6.8万
展开全部
#include<stdio.h>
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]);
}
}
希望能帮到你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式