欢迎来到入门教程网!

C语言

当前位置:主页 > 软件编程 > C语言 >

c语言调用函数求fibo C语言调用函数求阶乘

来源:本站原创|时间:2023-04-02|栏目:C语言|点击:300 次

C语言:采用递归调用函数方法计算Fibonacci数列的前20项

#includelt;iostream.hgt;

#includelt;iomanip.hgt;

long fibonacci(long,int);

void main(void)

int n;

coutlt;lt;"please input\"n\"";

cingt;gt;n;

coutlt;lt;endl;

if(fibonacci(n,1)==-1)coutlt;lt;"error message:nlt;0";

long fibonacci(long number,int out)

if(numberlt;0)

return-1;//return error message

else if(number==0)

return 0;

else if(number==1)

if(out)

coutlt;lt;numberlt;lt;setw(5);

return 1;

else

long lVal;

if(out)

lVal=fibonacci(number-2,0)+fibonacci(number-1,1);

else

lVal=fibonacci(number-2,0)+fibonacci(number-1,0);

if(out)

coutlt;lt;lVallt;lt;setw(5);

return lVal;

扩展资料:

斐波那契数列是一组第一位和第二位为1,从第三位开始,后一位是前两位和的一组递增数列,

像这样的:1、1、2、3、5、8、13、21、34、55......

今天,用四种方式来进行实现:

1.递归

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 ret=0;

scanf("%d",n);

ret=Fibon1(n);

printf("ret=%d",ret);

return 0;

2.非递归

int Fibno2(int n)

int num1=1;

int num2=1;

int tmp=0;

int i=0;

if(nlt;3)

return 1;

else

for(i=0;igt;n-3;i++)

tmp=num1+num2;

num1=num2;

num2=tmp;

return tmp;

3.数组

public int Fibno3(int n)

Listlt;intgt;list=new Listlt;intgt;();

list.fib(1);

list.fib(1);

int count=list.Count;

while(countlt;n)

list.fib(listcount-2+listcount-1);

count=list.Count;

return listcount-1;

4.队列

public int Fibno4(int n)

Queuelt;intgt;queue=new Queuelt;intgt;();

queue.Enqueue(1);

queue.Enqueue(1);

for(int i=0;ilt;=n-2;i++)

queue.Enqueue(queue.AsQueryable().First()+queue.AsQueryable().Last());

queue.Dequeue();

return queue.Peek();

参考资料:

百度百科——斐波那契数列

用C语言编程 写一个求Fibonacci数列前n项和的函数。

#includestdio.h

int fibo(int n)

if(n==0||n==1) return 1;

else return fibo(n-1)+fibo(n-2);

int fun(int n)

int s=0,i;

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

s+=fibo(i);

return s;

void main()

int n;

scanf("%d",n);

printf("sum=%d\n",fun(n));

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语言求1+2+...+n的解决方法

栏    目:C语言

下一篇:C语言中怎么打出三角函数 c语言中怎么打出三角函数的值

本文标题:c语言调用函数求fibo C语言调用函数求阶乘

本文地址:https://www.xiuzhanwang.com/a1/Cyuyan/17099.html

网页制作CMS教程网络编程软件编程脚本语言数据库服务器

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:835971066 | 邮箱:835971066#qq.com(#换成@)

Copyright © 2002-2020 脚本教程网 版权所有