菲波那锲数的C语言实现;
1, 1,2,3,5,8,13,21,34,55,89… 斐波那契数列web
递归函数本质即调用自身;
看代码;递归实现斐波那契数列;
#include
int main()
{
int n=0;
scanf("%d",&n)
int fib(int n); // 声明斐波那契数列;
if(n<=2)
return 1;
else
return fib(n-1)+fib(n-2); // 根据斐波那契数列算法可得;
返回声明 n ;
}
{
int main()
int ret=0; // 声明最终的返回值 ret;
int n=0;
scanf("%d",&n); // ret=fib(n); 最终值返回;
ret=fib(n);
printf("%d",ret);
return 0;
}
非递归的:
#include
int main()
{
int n=0;
int fib(int n);
if (n<=2)
return 1;
else
{
int a=1; // a初始化1;
int b=1; //b初始化1 ;
int c=0;
for(i=2;i<=n;i++)
{
c=a+b; // c=a+b;
a=b; // 斐波那契数列后面的值依次向前进行加;b的值赋给a;
b=c;} // c的值赋给b 不断依次赋值再加
}
printf("\n");
return c;
}
递归的使用有两大条件:限制条件(跳出);无限接近条件;
阶乘的递归实现:算法
#include
int main()
{
int x=0;
printf("please enter a interger:");
scanf("%d",&x);
int fac(int x);
if(i<=1)
return 0;
else
return fac(n-1)*fac(n-2);
}
{
int main()
int ret=0;
int x=0;
scanf("%d",x);
ret=fac(n);
printf("%d",ret);
return 0;
}
阶乘的 非递归程序:
#include
#include
int main()
{
int i=0;
int ret=0;
printf("请输入数字:\n");
scanf("%d",&num);
if(i==0|| i=1)
{ return 1; }
if(i>1)
{
ret=i*(i-1);
return ret;
}
system ("pause");
return 0;
}