n的阶乘

#include
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;
}

你可能感兴趣的:(n的阶乘)