#include <stdio.h>
int mul(int x)
{
if (x > 1)
return x * mul(x - 1);
else
return 1;
}
int main()
{
int a = 0;
scanf("%d", &a);
printf("%d",mul(a));
return 0;
}
二、非递归求阶跃
#include <stdio.h>
int main()
{
int mul = 1;
int i = 0;
int n = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
mul = mul * i;
}
printf("%d", mul);
return 0;
}
三、递归实现菲波那契数
#include <stdio.h>
int fib(int x)
{
if (x <= 2)
return 1;
else
return fib(x - 1) + fib(x - 2);
}
int main()
{
int a = 0;
scanf("%d", &a);
printf("%d",fib(a));
return 0;
}
四、非递归实现菲波那契数
#include <stdio.h>
int sum(int x)
{
int a = 1;
int b = 1;
int c = 1;
while (x > 2)
{
c = a + b;
a = b;
b = c;
x--;
}
return b;
}
int main()
{
int n = 0;
int i = 0;
int a = 0;
scanf("%d", &n);
printf("%d",sum(n));
return 0;
}