题目
求阶乘
输入格式
输入一个整数
输出格式
输出相应的结果
输入输出样例
输入:5
输出: 120
代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//递归法求阶乘
long long FactorialOne(long long x)
{
if (x == 1)
return 1;
return FactorialOne(x-1)*x;
}
//非递归法求阶乘
void FactorialTwo(int x)
{
long long y = 1;
for (int i = 1; i <= x; i++)
{
y *= i;
}
printf("非递归法求阶数的结果为:%d\n", y);
}
int main()
{
int n;
scanf("%d", &n);
long long res1 = FactorialOne(n);
printf("递归法求阶数的结果为:%d\n", res1);
FactorialTwo(n);
return 0;
}
总结
递归法就阶乘就相当于创建了一个过程重复相同函数,在满足判断条件之前,函数该函数会一直返回该函数进行调用。