#include <iostream>
using namespace std;
// n的阶乘 -- 1. 递归方法(必须要是返回值函数,而不能是void类型函数)
int factorial1(int n)
{
if (n <= 0)
printf("值为负数,不能判断!!!\n\n");
else if (n==1)
return 1;
else
return n * factorial1(n - 1);
}
// n的阶乘 -- 2. 循环方法
int factorial2(int n)
{
int mul=1;
while (true) {
mul *= n;
n--;
if (n == 1)
break;
}
return mul;
}
int main()
{
int n;
cin >> n;
printf("递归:数 %d 的阶乘是 %d\n", n,factorial1(n));
printf("循环:数 %d 的阶乘是 %d\n", n, factorial2(n));;
return 1;
}
来源:https://www.cnblogs.com/TyranRex/p/12162184.html