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

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

#includelt;iostream.hgt;

创新互联2013年至今,是专业互联网技术服务公司,拥有项目网站制作、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元迁西做网站,已为上家服务,为迁西各地企业和个人服务,联系电话:18982081108

#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(list[count-2]+list[count-1]);

count=list.Count;

}

return list[count-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语言调用函数求fibo C语言调用函数求阶乘
分享网址:http://scyanting.com/article/ddshcoo.html