在最初学习C语言时,要求5!采用while循环去求。方法如下:
到后来,我们学习了函数的调用,求一个数的阶乘有了新的方法。求n!可以采用递归方法。
我们对n!做分析,可以0!=0,1!=0
,而其余的数均为n!=n*(n-1)!
所以,我们可以写出以下程序:
注意:
程序中的变量是int型,编译系统为int型数据分配4个字节,能表示的最大数为2 147 483 647当n=12时,运行正常,输出479001600;如果输入13,企图求13!,是得不到预期结果的,因为输出的结果超出了int型数据的最大值。可以将f,y,fac函数定义为float型或double型。