2025-03-08 学习记录--C/C++-PTA 习题10-2 递归求阶乘和
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻
一、题目描述 ⭐️
二、代码(C语言)⭐️
#include <stdio.h>
double fact( int n );
double factsum( int n );
int main()
{
int n;
scanf("%d",&n);
printf("fact(%d) = %.0f\n", n, fact(n));
printf("sum = %.0f\n", factsum(n));
return 0;
}
/* 你的代码将被嵌在这里 */
// 递归实现 n 的阶乘
double fact(int n) {
return n == 0 ? 1 : n * fact(n - 1);
}
// 实现阶乘和
double factsum(int n) {
double sum = 0; // 使用 double 类型避免精度丢失
for (int i = 1; i <= n; i++) {
sum += fact(i); // 累加每个数的阶乘
}
return sum; // 返回阶乘和
}