网站建设资讯

NEWS

网站建设资讯

函数的斐波那契c语言 斐波那契c语言求和

C语言 斐波那契

程序的算法是用了递归调用 ,就是一种直接或者间接地调用自身的算法,且必须有一个明确的递归结束条件,称为递归出口。 输入一个数后,调用Fibonacci(int n)函数并执行,当判断n不等于1或者2时,则不断地执行t1=Fibonacci(n-1);t2=Fibonacci(n-2);语句,直到n=1或者n=2时才有确定的值1,然后再递推回去就得到Fibonacci(int n)的值了。

中山网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站开发等网站项目制作,到程序开发,运营维护。创新互联成立于2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联

C语言 斐波那契数列怎么写

#include

int

fib(int

n)//递归函数

{

//斐波那契数列算法

if(n==1||n==2)

return

1;

return

fib(n-1)+fib(n-2);

}

int

main()

{

int

n;

scanf("%d",n);

printf("%d\n",fib(n));

return

0;

}

斐波那契数列的通项公式在C语言中如何表达?

斐波那契数列在数学上的通项公式为

An=An-1+An-2

在C语言中,根据算法实现不同,可以有很多种表达方式。以计算斐波那契第N项值为例,说明如下。

一、以数组方式实现:

int fn(int n)

{

int *a,i,r;

a=(int *)malloc(sizeof(int)*n);//分配动态数组。

a[0]=1;

a[1]=1;//初始化前两项。 

for(i = 2; in; i ++)

{

a[i]=a[i-1]+a[i-2];//这里就是通项公式的一种实现形式。 

}

r = a[n-1];//保存结果

free(a);//释放动态数组

return r;//返回结果值。 

}

二、以递归函数形式:

int fn(int n)

{

if(n == 0 || n == 1) return 1;//前两项固定值。

return fn(n-1)+fn(n-2);// 通过递归调用实现通项公式。 

}

三、注意事项:

1、方法有很多,不可能穷举完成,写代码时要灵活使用。

2、例子中以int保存,限于整型范围,计算很大值时会出现溢出。 根据实际需要选择类型。

C语言 斐波那契函数

斐波那契数列问题,做为学习一般都用递归来写,默认情况下都设置程序运行时默认的栈空间大小为1MB,下面是递归调用的实例。

#includestdio.h

int fibo(int a)

{

if(a=2)

return 1;

else

return fibo(a-1)+fibo(a-2);

}

int main()

{

int a;

while(scanf("%d",a)!=EOF)

printf("%d\n",fibo(a));

return 0;

}

斐波那契数列 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语言:利用函数递归求斐波那契数列,输出该数列的前17项,每行输出5个数。

#include

#define

COL

5

//一行输出5个

long

fibonacci(int

n)

{

//fibonacci函数的递归函数

if

(0==n||1==n)

{

//fibonacci函数递归的出口

return

1;

}

else

{

return

fibonacci(n-1)+fibonacci(n-2);

//反复递归自身函数直到碰到出口处再返回就能计算出第n项的值

}

}

int

main(void)

{

int

i,n;

n=

17;

printf("Fibonacci数列的前%d项\n",

n);

for

(i=0;

i

{

printf("%-10ld",fibonacci(i++));

//调用递归函数并且打印出返回值

if(i%COL==0)

{

//若对COL取余等于0就换行,也就是控制每行输出多少个,

//而COL=10就是每行输出10个

printf("\n");

}

}

printf("\n");

return

0;

}


文章标题:函数的斐波那契c语言 斐波那契c语言求和
网页路径:http://cdweb.net/article/doogide.html