C语言 递归方法调用函数计算n!

Posted 大号小白兔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 递归方法调用函数计算n!相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
int fun(int n)   //定义函数

    if(n==0||n==1)
    
        n=1;
    
    else
    
     n=n*fun(n-1);  //递归调用函数
    

  int main()
  
        int i,j;
        printf("请输入一个数字:\\n");
        scanf("%d",&i);
        j=fun(i);
        printf("它的阶乘为: %d",j);
  

测试结果:

相比于传统的利用循环计算阶乘:

#include<stdio.h>
int main()

    int i=1,n;
    int sum=1;   //设初值为1,因为0和1的阶乘都为1;
    printf("输入一个正的数字:\\n");
    scanf("%d",&n);
    for(i=1;i<=n;i++)  //循环的次数,由输入的n决定
    
        sum=sum*i;  //循环计算阶乘
    
    printf("它的阶乘为:%d",sum);

测试:

我们发现调用函数递归计算的运算时间要比循环计算阶乘的时间长。

以上是关于C语言 递归方法调用函数计算n!的主要内容,如果未能解决你的问题,请参考以下文章

计算1!+2!+3!...+(n-1)!+n!。设计求解该问题的C语言程序,阶乘的计算使用递归函数实现

C语言求n个数的阶乘和,使用for语句循环,一定要用套嵌for语句吗?不用套嵌的单层for可以吗,

C语言编程:用函数递归法求Fibonacci数列的前n项·

C语言 尾递归

C语言讲义——函数递归

vb组合数c(n,m) 递归求法,要用function函数。