C语言,利用递归调用,编程输出斐波那契数列 ,这个怎么编啊,求指教啊

C语言,利用递归调用,编程输出斐波那契数列 ,这个怎么编啊,求指教啊,第1张

#include<stdioh>
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;
}

这样子写程序就可以了,vc6下验证成功
#include<stdioh>
void main()
{
long int sum=0;
long int count(int n);
int n;
printf("input n=");
scanf("%d",&n);
printf("result is %ld\n",count(n));
}
long int count(int n)
{
if(n>1)
return ncount(n-1);
else
return 1;
}

思路:递归求阶乘函数,如果输入的参数等于1则返回1,否则返回n乘以该函数下次递归。
参考代码:
#include
int fun(int n)
{
if(n==1||n==0) return 1;//如果参数是0或者1返回1
return nfun(n-1);//否则返回n和下次递归的积
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",fun(n));
return 0;
}
/
5
120
/
递归算法的原理
递归是计算机科学的一个重要概念,递归的方法是程序设计中有效的方法,采用递归编写
递归能使程序变得简洁和清晰。

#include<stdioh>
#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项。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13355162.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-20
下一篇 2023-07-20

发表评论

登录后才能评论

评论列表(0条)

保存