21xrx.com
2024-11-05 18:30:17 Tuesday
登录
文章检索 我的文章 写文章
用C语言编写求阶乘函数并调用方法
2023-06-15 11:25:56 深夜i     --     --
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语言程序。该程序主要用到了循环和递归两种方法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复