C语言之使用递归的方法求n的阶乘

简介: C语言之使用递归的方法求n的阶乘

代码如下所示:

#include<stdio.h>
main()
{
  long fac(int n);//递归函数的声明
  int n;
  long y;//定于整形可能会出现溢出现象
  printf("请输入要求阶乘的数:");
  scanf_s("%d", &n);
  y = fac(n);//调用递归函数
  printf("%ld", y);
}
long fac(int n)
{
  long f;
  if (n== 1 || n == 0)//0或者1的阶乘都是1
    f = 1;
  else
    f =n* fac(n-1);//等价于n*n-1*n-2.....
  return f;
}

输出结果如下:

相关文章
|
19天前
|
存储 编译器 C语言
爱上C语言:函数递归,青蛙跳台阶图文详解
爱上C语言:函数递归,青蛙跳台阶图文详解
|
2月前
|
存储 编译器 C语言
【C语言】判断字符类型的三种方法
【C语言】判断字符类型的三种方法
79 0
|
2月前
|
机器学习/深度学习 存储 C语言
c语言从入门到实战——函数递归
函数递归是指一个函数直接或间接地调用自身,以解决问题的一种方法。在C语言中,函数递归可以用来计算阶乘、斐波那契数列等数学问题。 函数递归是一种编程技术,其中函数直接或间接地调用自身来解决问题。它常用于处理可以分解为更小同类问题的复杂问题,如排序、搜索树等。递归的基本思想是将问题分解为更简单的子问题,然后组合子问题的解来得到原问题的解。然而,递归需要小心处理终止条件,否则可能导致无限循环。此外,递归可能消耗大量内存,因为它需要存储每个递归调用的状态。因此,在使用递归时,应仔细考虑其效率和适用性。
31 0
|
2月前
|
机器学习/深度学习 存储 算法
C语言栈与递归的实现讲解
C语言栈与递归的实现讲解
25 0
|
2月前
|
C语言
你知道C语言中实现有序序列并序输出的2种方法吗?
你知道C语言中实现有序序列并序输出的2种方法吗?
|
2月前
|
C语言
【C语言】大小写字母的相互转化:多种方法解析及原理说明
【C语言】大小写字母的相互转化:多种方法解析及原理说明
111 0
|
2月前
|
C语言
C语言递归问题【青蛙跳台阶】和【汉诺塔】
C语言递归问题【青蛙跳台阶】和【汉诺塔】
|
6天前
|
机器学习/深度学习 C语言
函数递归深入解析(C语言)
函数递归深入解析(C语言)
|
7天前
|
C语言
C语言取整方法详解
C语言取整方法详解
11 0
|
8天前
|
C语言 索引
c语言的函数与递归
c语言的函数与递归
14 1