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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a1b2c3d4123456/article/details/46702443
#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);
}

测试:
这里写图片描述

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

展开阅读全文

没有更多推荐了,返回首页