本题要求实现一个计算非负整数阶乘的简单函数,使得可以利用该函数,计算 1! + 2! + ⋯ + 10! 的值。
函数接口定义:
double fact( int n );
其中 n 是用户传入的参数,其值不超过 10。如果 n 是非负整数,则该函数必须返回 n 的阶乘。
裁判测试程序样例:
#include <stdio.h>
double fact( int n );
int main(void)
{
int i;
double sum;
sum = 0;
for(i = 1; i <= 10; i++)
sum = sum + fact(i);
printf("1!+2!+...+10! = %f\n", sum);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
本题没有输入。
输出样例:
1!+2!+…+10! = 4037913.000000
来源:
来源:PTA | 程序设计类实验辅助教学平台
链接:https://pintia.cn/problem-sets/13/exam/problems/465
提交:
题解:
/*
* 返回 n 的阶乘的值
*/
double fact(int n) {
if (n == 0 || n == 1) {
return 1;
}
return n * fact(n - 1);
}