您的位置:

用递归实现斐波那契数列c语言,用递归函数实现斐波那契数列

本文目录一览:

c语言用递归方法实现斐波那契数列

int fbnc(int n)

{ if (n1) return (-1); //wrong;

else if (n2) return 1;

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

}

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语言

代码:

#includelt;stdio.hgt;

int Fib(int n){//自定义函数

if(nlt;0)

return-1;

else if(n==0)

return 0;

else if(n==1)

return 1;

else

return Fib(n-1)+Fib(n-2);

}

int main(){

int num;

printf("请输入要求取的第n项斐波那契数列n=");

if(scanf("%d",num)){

if(numgt;=0){

printf("%d",Fib(num));

}

else

printf("Error!!!");

return 0;

}

return 0;

}

扩展资料:

斐波那契数列排列组合

有一段楼梯有10级台阶,规定每一步只能跨一级或两级,要登上第10级台阶有几种不同的走法

这就是一个斐波那契数列:登上第一级台阶有一种登法;登上两级台阶,有两种登法;登上三级台阶,有三种登法;登上四级台阶,有五种登法……

1,2,3,5,8,13……所以,登上十级,有89种走法。

类似的,一枚均匀的硬币掷10次,问不连续出现正面的可能情形有多少种?

答案是(1/√5)*{[(1+√5)/2]^(10+2)-[(1-√5)/2]^(10+2)}=144种。

求递推数列a⑴=1,a(n+1)=1+1/a(n)的通项公式

由数学归纳法可以得到:a(n)=F(n+1)/F(n),将斐波那契数列的通项式代入,化简就得结果。

参考资料:

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

c语言编程中如何用递归实现Fibonacci数列?

#includestdio.h

#define N 20

int Fibonacci(int n)

{

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

return 1;

else

return Fibonacci(n-1)+Fibonacci(n-2);

}

void main()

{

int i = 0;

for(i=1;i=N;i++)

{

printf("%5d",Fibonacci(i));

if(i%5 == 0)

printf("\n");

}

printf("\n");

}

只要修改宏定义N的值,就可以输出斐波那契数列的前N项。