21xrx.com
2025-06-27 20:53:05 Friday
文章检索 我的文章 写文章
用C语言编写求阶乘函数并调用方法
2023-06-15 11:25:56 深夜i     17     0
C语言 阶乘函数 递归

在编写C语言程序时,经常需要求出一个数的阶乘。阶乘是一个数与大于它的所有正整数的积。例如,5的阶乘为5x4x3x2x1 = 120。在C语言中,可以通过循环和递归两种方式来求阶乘。

方法一:循环求解

循环求解是一种比较简单的方法。我们可以从1开始乘到n,然后将结果累加,即可求出n的阶乘。下面是使用循环的求解方法:

#include
int main()
{
  int n,i,factorial=1;
  printf("请输入一个正整数n:");
  scanf("%d",&n);
  for(i=1;i<=n;i++)
  {
    factorial*=i;//用factorial乘以变化的i
  }
  printf("%d!=%d\n",n,factorial);
  return 0;
}

方法二:递归求解

递归是一种将问题分解成相同类型的子问题然后逐步求解的方法。在C语言中,可以使用递归的方式求解n的阶乘。下面是一个递归函数的例子:

#include
int fac(int n)//定义一个函数名为fac,参数为n
{
  if(n==0)//当n等于0时就返回1
  
    return 1;
  
  else//否则返回n乘以n-1的阶乘
  {
    return n*fac(n-1);
  }
}
int main()
{
  int n;
  printf("请输入一个正整数n:");
  scanf("%d",&n);
  printf("%d!=%d\n",n,fac(n));
  return 0;
}

以上就是两种方法求n的阶乘的C语言程序。该程序主要用到了循环和递归两种方法。

  
  

评论区