题目描述:求1!+2!+3!+4!+......+n!的值。
输入:输入一个正整数n(1<=n<=20)。
输出:输出其阶乘之和。
【样例】:
输入:3
输出:9
程序如下:
#include <stdio.h>
// 函数:计算给定数字的阶乘
long long factorial(int num) {
long long result = 1;
for(int i = 1; i <= num; i++) {
result *= i;
}
return result;
}
int main() {
int n;
long long sum = 0;
// 输入整数n
scanf("%d", &n);
// 计算阶乘求和
for(int i = 1; i <= n; i++) {
sum += factorial(i);
}
// 输出结果
printf("1! + 2! + ... + %d! = %lld\n", n, sum);
return 0;
}
简练版:
#include<stdio.h>
long long funtion(int n) {
if(n == 0 || n == 1) return 1;
return n*funtion(n-1);
}
int main() {
int n;
long long sum = 0;
scanf("%d", &n);
for(int i = 1; i <=n; i++) sum += funtion(i);
printf("%lld\n", sum);
}
终端输出结果:
题目来源:ACM-ICPC基本算法(JLOJ2408)