其实求一个数的阶乘并不复杂,只需要从1开始乘到那个数就可以。
int main() {
int n = 0;
scanf("%d", &n);//n为需要求阶乘的数字
int i = 0;
int sum_num = 1;
//利用一个for循环来实现相乘
for (i = 1; i <= n; i++) {
sum_num = sum_num * i;
}
printf("%d", sum_num);
}
当我们会求取一个数的阶乘时,求阶乘之和的问题也就转变为两个问题:
1.求每个数的阶乘
2.将每个数的阶乘之和加起来
函数方法:
int sum1(int n) {
int i = 0;
int sum_num = 1;
for (i = 1; i <= n; i++) {
sum_num = sum_num * i;
}
return sum_num;
}
//以上代码块是将求一个数的阶乘写为函数
int sum2(int m) {
int sum_num2 = 0;
for (int i = 1; i <= m; i++) {
sum_num2 += sum1(i);//在一个函数中调用另一个函数
}
return sum_num2;
}
//sum2()这个函数是用来将每个数的阶乘加在一起
int main() {
printf("%d", sum2(10));
}
这里我用10来做个例子,写完两个函数后,只需要在main()函数中调用sum2()函数即可。如果需要,可以用“scanf”函数来输入n,也就是需要求从一到n的阶乘之和。



