21xrx.com
2025-03-23 17:39:46 Sunday
文章检索 我的文章 写文章
如何在C语言中计算阶乘
2023-06-16 10:32:51 深夜i     9     0
C语言 阶乘 循环 递归

阶乘是数学中的一个重要概念,用于描述一组正整数的乘积。在C语言中,我们可以使用循环或递归的方法来计算阶乘。循环方法比较简单,可以通过一个for循环实现。递归方法则需要定义一个递归函数,通过函数递归的方式计算阶乘。

下面是使用循环方法计算阶乘的C语言代码:

#include 
int main() {
  int n, i;
  long long fact = 1;
  printf("请输入一个正整数:");
  scanf("%d", &n);
  // 计算阶乘
  for(i=1; i<=n; ++i) {
    fact *= i;
  }
  printf("%d! = %lld\n", n, fact);
  return 0;
}

这段代码首先通过scanf函数获取用户输入的正整数n,然后通过一个for循环计算n的阶乘。循环从1到n遍历,将每个数乘以已经计算出的阶乘结果。最后输出n的阶乘结果fact。

下面是使用递归方法计算阶乘的C语言代码:

#include 
long long factorial(int n) {
  if(n == 1)
    return 1;
  
  return n * factorial(n-1);
}
int main() {
  int n;
  long long fact;
  printf("请输入一个正整数:");
  scanf("%d", &n);
  // 调用递归函数计算阶乘
  fact = factorial(n);
  printf("%d! = %lld\n", n, fact);
  return 0;
}

这段代码定义了一个递归函数factorial,通过递归的方式计算阶乘。当n为1时,递归函数返回1,否则返回n乘以factorial(n-1)的结果。在main函数中,首先获取用户输入的正整数n,然后调用递归函数计算n的阶乘,最后输出结果。

  
  

评论区

请求出错了