本文目录一览:
C语言进阶:求斐波那契数列
工具/材料
visual studio
01
求斐波那契数列有两种思路:循环与递归。我们首先来看循环的方式。为了与实际下标对应,我设置数组第一项为0。
02
对索引i的值进行判断:i==1,则令a[i]=1。否则a[i]=a[i-1]+a[i-2];
03
然后再添加一个打印函数,只需要打印第1-n项即可。
04
编写测试函数,用n=5与n=10测试,代码与结果如下:
05
在这里,我写出求第n项的函数,接下来只需要添加一个外函数就可以求出。
06
接下来,测试n=5与n=10,即依次调用递归函数计算每一个值。
07
运行的结果如下,与之前的循环一致。
斐波那契数列 c语言
#include stdio.h
int fn(int a)
{
if (a==1)
return 1;
else
{
if (a==2)
return 2;
else
return fn(a-1)+fn(a-2);
}
}
void main ()
{
int i;
FILE *fp;
fp=fopen("e:\\jieguo.txt","w"); // 保存的路径,可以该。
for (i=1;i=50;i++)
fprintf(fp,"%d:%d\n",i,fn(i));
fclose(fp);
}
注意: 程序运行的有点慢,要等一会儿, 你可以把 50改成 10 ,就能看见运行的结果了
在E盘的jieguo.txt中。
c语言.计算斐波那契数列的前n项和(s),四种方法?
方法2:
#include stdlib.h
#include stdio.h
int Fibon1(int n)
{
if (n == 1 || n == 2)
{
return 1;
}
else
{
return Fibon1(n - 1) + Fibon1(n - 2);
}
}
int main()
{
int n = 0;
int m=0;
int ret = 0;
printf("请输入要计算的斐波那契数列的前N项总数:");
scanf("%d", n);
m=n;
do
{
ret += Fibon1(n);
n--;
} while (n0);
printf("前%d项目和ret=%d", m,ret);
getchar();
getchar();
return 0;
}
运行结果:
方法4:
#include stdlib.h
#include stdio.h
int Fibon1(int n);
int main()
{
int n = 0;
int m=0;
int ret = 0;
printf("请输入要计算的斐波那契数列的前N项总数:");
scanf("%d", n);
m=n;
do
{
ret += Fibon1(n);
n--;
} while (n0);
printf("前%d项目和ret=%d", m,ret);
getchar();
getchar();
return 0;
}
int Fibon1(int n)
{
if (n == 1 || n == 2)
{
return 1;
}
else
{
return Fibon1(n - 1) + Fibon1(n - 2);
}
}
运行结果:
用c语言计算fibonacci数列的前50项和
#include"stdio.h"
intmain(){
longintf1,f2,i;
f1=1;f2=1;//赋初始值
for(i=1;i=20;i++){//循环20次,一次两个,结果为前50项
printf("%12d%12d",f1,f2);//输出两项
f1=f1+f2;f2=f2+f1;//计算下面两项
if(i%2==0)//一行四个好看用
printf("\n");
}
return0;
}
扩展资料
C语言程序Fibonacci数列计算兔子:
#includestdio.h
#defineYEAR12
intmain()
{
intf[YEAR+1]={0,1,2};//1月和2月兔子对数分别初始化为1,2,不使用f[0]
intmonth;
for(month=3;month=YEAR;month++)//从3月份开始计算每个月总兔数
{
f[month]=f[month-1]+f[month-2];
}
for(month=1;month=YEAR;month++)//输出12个月的总兔对数
{
printf("%d\t",f[month]);
}
printf("\nsum=%d\n",f[YEAR]);//输出年末的兔子总数
return0;
}
求用C语言表达斐波那契数列
#include stdio.h
main( ){
long f1,f2,f;
int i,n;
scanf("%d",n);
f1=f2=1;
if(n=2)
f=1;
else
for(i=3;i=n;i++){
f=f1+f2;
f1=f2;
f2=f;
}
printf("%ld\n",f);
}
波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:
F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。