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

Python018

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

}

long ff(int n)       //函数作用是计算N的阶乘                    

 long f

 if(n<0)printf("n<0,input error")//n不能为负数

 else if(n==0||n==1)f=1//这里使ff(0)和ff(1)等于1

 else f=ff(n-1)*n//这里使ff(n) = n * ff(n-1),重要,因为当形参n = n-1时,ff(n-1) = ff(n-2) * (n-1),所以这一步实际实现了n阶乘计算,即ff(n) = n * ff(n-1) = n * (n-1) * ff(n-2).....*ff(1) *ff(0),因为ff(0) == ff(1) == 1.所以ff(n) = n!实现。

 return(f)

}