方法一:使用循环
```c
include
int main() {
int n, i, sum = 0;
printf("请输入要计算阶乘和的数字 n:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
int factorial = 1;
for (int j = 1; j <= i; j++) {
factorial *= j;
}
sum += factorial;
}
printf("阶乘和为:%d\n", sum);
return 0;
}
```
方法二:使用递归
```c
include
int fn_jc(int iNum) {
if (iNum == 1) {
return 1;
} else {
return iNum * fn_jc(iNum - 1);
}
}
int main() {
int i = 1;
int iSum = 0;
for (; i <= 5; i++) {
iSum += fn_jc(i);
}
printf("1-5阶乘和为%d", iSum);
return 0;
}
```
方法三:使用循环和累乘
```c
include
int main() {
int n, i, sum = 0;
printf("请输入要计算阶乘和的数字 n:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
int fact = 1;
for (int j = 1; j <= i; j++) {
fact *= j;
}
sum += fact;
}
printf("阶乘和为:%d\n", sum);
return 0;
}
```
方法四:使用递归求和
```c
include
int getMul(int n) {
if (n == 1) {
return 1;
} else {
return n * getMul(n - 1);
}
}
int getSum(int n) {
if (n == 0) {
return 0;
} else {
return getMul(n) + getSum(n - 1);
}
}
int main() {
int n, h, s;
printf("请输入 n:");
scanf("%d", &n);
printf("!n=%d\n", getMul(n));
printf("s=%d\n", getSum(n));
return 0;
}
```
方法五:使用循环和累加
```c
include
int main() {
int n, i, sum = 0;
printf("请输入要计算阶乘和的数字 n:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
int factorial = 1;
for (int j = 1; j <= i; j++) {
factorial *= j;
}
sum += factorial;
}
printf("阶乘和为:%d\n", sum);
return 0;
}
```
这些方法都可以实现计算1到5阶乘的和。你可以选择最适合你的方法进行尝试。