计算1!+2!+...+n!=?
两种方法
一.for循环实现 过程比较简单
计算过程中不重置中间变量m 使m始终等于n!的值
#include<stdio.h>
int main()
{
int m = 1;
int sum = 0;
int n = 0;
printf("计算1!+2!+...+n!的结果\n");
printf("请输入数字n:");
scanf("%d",& n);
for (int i = 1; i <= n; i++)
{
m = m * i;
sum += m;
}
printf("结果为%d", sum);
return 0;
}
二.递归实现 用到count、sum函数
#include <stdio.h>
//count函数用于计算单个数字的阶乘
int count (int n) {
if(n==1) return 1;
else return n*count(n-1);
return 0;
}
//sum函数用于计算count得到结果的累加
int sum (int n) {
if(n==1) return count(1);
else return count(n)+sum(n-1);
return 0;
}
int main () {
int n ;
printf("计算1!+2!+...+n!的结果\n");
printf("请输入数字n:");
scanf("%d",&n);
int s;
s = sum(n);
printf("结果为%d", s);
return 0;
}