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

来源:互联网 发布:ultra sigma软件 编辑:程序博客网 时间:2024/04/29 22:14
#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);}

测试:
这里写图片描述

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

0 0
原创粉丝点击