C语言 计算fibonacci数列?

C语言 计算fibonacci数列?,第1张

C语言程序代码如下:

#include <stdio.h>

main()

{

long int f1,f2

int i

f1=1

f2=1

for (i=1i<=9i++)

{

printf("%ld %ld   ",f1,f2)

if (i%3==0) printf("\n")

     

f1=f1+f2

f2=f2+f1

}

return 0

}

if语句是使输出6个数后换行。因为i是循环变量,当i为偶数时换行,因此i每隔2换一次行相当于每输出6个数后换行。

输出结果如下

主文件:main.m

%made by Canlong

%%

%编写算法完成下面给余猜谜的游戏

%心里想好一个1~100之间的整数x,将它分别除以3,5,7并得到3个余数。把这三个余数输入计算机,计算机能马上猜出这个数。

%方法一:穷举法

disp('方法一:穷举法')

num1 = input('请输入第一个数:')

num2 = input('请输入第二个数:')

num3 = input('请输入第三个数:')

for i=1:100

if rem(i,3)==num1 &&rem(i,5)==num2 &&rem(i,7)==num3

fprintf('该数为:%d \n',i)

end

end

%%

%方法二,建模.

disp('方法二,建模.')

num1 = input('请输入第一个数:')

num2 = input('请输入第二个数:')

num3 = input('请输入第三个数:')

d=70*num1+21*num2+15*num3

while d>105

d = d-105

end

fprintf('该数为:%d \n',d)

%%

%斐波那契数列的应用

%斐波那契数列有如下特点:a1,a2已知  a(n)=a(n-1)+a(n-2)  n>=3

%例题:楼梯上有n阶台阶,上楼时可以一步上1阶,也可以一步上2阶,编写算法计算共有多少种不同的上楼梯方法

%楼梯阶数

n=10

disp('如果楼梯阶数为10,上楼梯的方法数,解得:')

fprintf('f(%d)为:%d \n',n,f(n))

函数文件:f.m

%输入n为阶梯数,a为返回的阶梯数

%made by Canlong

function a=f(n)

if n==1

a=1

return

end

if n==2

a=2

return

else

a=f(n-1)+f(n-2)

return

end

end

扩展资料:

图形处理:

MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。

新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等)。

MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。

模块工具:

MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。领域,诸如数据采集。

数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具。

非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。

程序接口:

新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。允许用户编写可以和MATLAB进行交互的C或C++语言程序。

另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。

工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。

#include<stdio.h>

main()

{

doublefib[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(inti=2i<=50i++)

{

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

if(i==n){

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

}

}

scanf("%lf",&n)

if(n==-1){

break

}

}

return0

}

扩展资料:

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++有很大的不同。

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

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

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

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

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

publicclassMainDemo{

publicstaticvoidmain(String[]args){

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

}

}

JavaApplet的运行机制与JavaApplication完全不同,因此不需要main函数

3、C#中的main函数

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

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

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

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

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

classProgram{

staticvoidMain(string[]args){

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

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11278856.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存