6-1 求阶乘(递归版)
分数 10
作者 李祥
单位 湖北经济学院
请编写函数,用递归方法求阶乘。
n!=1×2×3×⋯×n
规定:0!=1
函数原型
double Fac(int x);
说明:参数 x 为非负整数,函数值为 x 的阶乘。
要求:不要使用循环语句,用递归方法完成函数的设计。
裁判程序
#include <stdio.h>
double Fac(int x);
int main()
{
int n;
scanf("%d", &n);
printf("%.10g\n", Fac(n));
return 0;
}
/* 你提交的代码将被嵌在这里 */
输入样例1
10
输出样例1
3628800
输入样例2
70
输出样例2
1.197857167e+100
思路
第一步我们先找出规律,得出公式,这里很容易的出公式为n*(n-1)
第二步找到中断条件,题中提示”0!=1“,因此我们可以很快想到条件。
代码如下:
double Fac(int x)
{
if(x==0)
return 1;
else
return x*Fac(x-1);
}