阶乘
int Jiecheng(int n)
{
if (n > 1)
{
return n*Jiecheng(n - 1);
}
else
return 1;
}
int main()
{
int n = 0;
scanf("%d",&n);
int sum=Jiecheng(n);
printf("\n%d", sum);
system("pause");
return 0;
}
求斐波那契额数
设计了两个不同的函数Feibona:采用递归的算法
feibo:没有采用递归的算法。
#include<stdlib.h>
#include<stdio.h>
int count = 0;
int Feibona(int n)//递归效率很低!
{
if (n == 3)
count++;//第三个斐波那契数被使用的次数。
if (n > 2)
return Feibona(n - 1) + Feibona(n - 2);
else
return 1;
}
int feibo(int n)//不使用递归
{
if (n <= 2)
return 1;
int a = 1;
int b = 1;
while (n > 2){
b = a + b;
a = b - a;
n--;
}
return b;
}
int main()//斐波那契数 1 1 2 3 5 8 13 21 34。。。。。
{
int n = 55555;
int ret = feibo(n);
printf("\n%d", ret);
printf("\n%d", count);
system("pause");
return 0;
}