c语言编程:用递归实现计算n!。

Python010

c语言编程:用递归实现计算n!。,第1张

由于对于任意的n,

n! = (n-1)! * n

即令f(n) = n!,存在公式

f(n)  = f(n-1) * n

在这个递归公式下,编写递归求阶乘代码如下:

int fac(int n)

{

    if(n == 0 || n == 1) return 1

    return fac(n-1)*n

}

首先明确题目要求:递归函数,求n!

递归函数的含义:

编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。

n!表示阶乘函数,即1*2*3*……*n

下面给出代码:(C语言实现 )

比较简单的尾递归实现:

#include<stdio.h>

long digui(int n)  //递归函数声明

int main()

{

int n  

scanf("%d",&n)

printf("the result is %ld",digui(n)) //打印出递归值

return 0

}

long digui(int n)  //递归函数部分

{

if(n>1)   

return n*digui(n-1)   //调用递归,让n与n-1相乘,直到n<1时

return 1   //n<1时,返回1,实现 n*(n-1)*(n-2)*……*3*2*1

}