编写程序,计算Fibonacci数列的前50项

编写程序,计算Fibonacci数列的前50项... 编写程序,计算Fibonacci数列的前50项 展开
 我来答
问明6E
高粉答主

2019-06-19 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:13.1万
展开全部

#include <stdio.h

main() 

{

double fib[51],n,m,k; 

fib[0]=0;

fib[1]=1;

scanf("%lf",&n); 

while(1){

if(n==0){

printf("0\n");

}

if(n==1){

printf("1\n");

}

for(int i=2;i<=50;i++)

fib[i]=fib[i-2]+fib[i-1];

if(i==n){

printf("%.0lf\n",fib[i]);

}

}

scanf("%lf",&n);

if(n==-1){

break;

}

}

return 0;

}

扩展资料:

main()应用:

1、C++中的main函数

C++继承了C语言的大部分特性,因此保留了“程序总是从main函数开始执行,且总是默认从main函数的return语句或结尾处结束运行”这一传统,

但是要注意,C++中的main函数要想作为程序执行的出入口,必须写在全局(Global)范围,不能写成某个结构体或某个类的成员。

虽然main函数可以作为结构体或者类的成员函数,但相应地会失去作为程序出入口的功能。

C++中全局main函数的书写格式与C语言完全相同,功能也完全相同,且同一C++程序同样只能有一个全局main函数。

2、Java中的main函数

Java同样是以main函数作为程序执行出入口的,但Java作为“更纯洁”的面向对象语言,它的main函数与C/C++有很大的不同。

首先,返回值的概念淡化,在Java Application中main不允许返回值,因此int main是被禁止的,必须使用void main,int main仅限在JavaBean中使用。

其次,Java中所有的函数必须属于类,没有什么全局函数一说,因此main函数不能是全局成员,必须是某个类的成员。

第三,由于main函数变成了类的成员函数,因此要想直接被系统调用,还必须使用public static使其成为静态函数并具有公开权限。

第四,main函数的参数被简化,只需要提供字符串数组即可,不需要提供参数个数(这是由于Java的数组具有下标检查功能的原因)

Java Application中的main函数一般格式如下(类名可以自定义,但保存为Java源码时,主文件名必须与类名相同,否则可能无法运行)

public class MainDemo{

public static void main(String[]args){

//TODO:在此处写入主函数的内容

}

}

Java Applet的运行机制与Java Application完全不同,因此不需要main函数

3、C#中的main函数

C#中的main函数与Java大同小异,同样必须是类成员,同样使用字符串数组作唯一参数,同样是静态函数,同样的void main,

与之不同的是:main的首字母变成了大写,即"Main函数“,且是否限定为public级别已经无所谓了(默认没有public,但某些场合可能还是需要public)

另外,需要注意的是,C#中不再有”类名必须与主文件名同名“的限制,即使类名不和主文件名相同,程序照样可以运行。

C#应用程序中的main函数默认是这样的(注意main的首字母已是大写)

C#和C/C++、java不同的是C#不在拘泥于必须从main()函数开始执行,C#是属于事件触发。

class Program{

static void Main(string[]args){

//TODO:在此处写入主函数的内容

}

}

多为觉5261
2021-01-09 · TA获得超过4006个赞
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fallx
2020-05-19 · TA获得超过5486个赞
知道大有可为答主
回答量:2321
采纳率:73%
帮助的人:730万
展开全部
#include <stdio.h> 
#define N 51
int main(){ 
    int i,n=0;
    long long f[N]={1,1};//主要是注意结果的宽度,int,long都不足保存,
    //只能用long long或者用一个足够大的数组来保存每一项的结果
    for(i=0;i<N-2;i++){ //i=N-2时退出:i=0,=>f[2],i=1,=>f[3]...
        f[i+2]=f[i]+f[i+1];//会算到第40项
        printf("%18lld ",f[i]);//输出宽度设置为18
        n++;
        if(n%3==0) //每输出3个断行
        printf("\n");
    } //退出时,f[N-2],f[N-1]都已算好
    printf("%18lld \n",f[i]);//输出f[50]
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式