斐波那契数列递归算法c语言(c++斐波那契数列递归算法)

http://www.itjxue.com  2023-01-25 11:05  来源:未知  点击次数: 

C语言编程:用递归和非递归法输出斐波那契数列

递归法:

#includestdio.h

void main()

{

int Fibonacci(int n);

int n,i,c=0;

printf("请输入n的值:");

scanf("%d",n);

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

{

c = Fibonacci(i);

printf("%12ld",c);

if(i%4==0) //用于换行 4个一行;

printf("\n");

}

}

int Fibonacci(int n)//函数部分;

{

long int f;

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

{

f=1;

}

else

if(n=3)

f = Fibonacci(n-1) + Fibonacci(n-2);

return f;

}

非递归法:

#includestdio.h

void main()

{

int i,n;

int f[]= {1,1};

printf("请输入n的值:");

scanf("%d",n);

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

f[i] = f[i-2] + f[i-1];

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

{

if(i%5==0) printf("\n");

printf("%12d",f[i]);

}

printf("\n");

}

递归可以使程序看起来比较简洁,但缺点是效率比较低,并且可能导致栈溢出,因此需要灵活使用递归。

编写一段C语言程序:利用函数的递归调用求斐波那契数列,该数列的公式如下:

#includestdio.h

#includestdlib.h

int f(int n)

{

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

{

return 1;

}

else

{

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

}

}

int main()

{

int n;

scanf("%d", n);

for (int i = 1; i = n; i++)

{

printf("%d ", f(i));

}

system("pause");

return 0;

}

C语言 用递归法求斐波那契数列第n项值 不要复制粘贴的

#include stdio.h

int fun(int n)

{

if( n == 1 || n == 2) // 递归结束的条件,求前两项

return 1;

else

return fun(n-1)+ fun(n-2); // 如果是求其它项,先要求出它前面两项,然后做和。

}

int main()

{

int n;

printf("please input n: ");

scanf("%d",n);

printf("Result: %d\n", fun(n));

return 0;

}

哪儿不明白就继续追问

(责任编辑:IT教学网)

更多

相关Javascript/Ajax文章

推荐Javascript/Ajax文章