U32382.奇特阶乘[C++]
原题链接:32382.奇特阶乘2024-10-07 15:13:29
发布于:上海
作者的话:
只要掌握了循环结构就没什么问题了。
分析
题意
题目:你马上要写完作业了,可是有一道题困住了你。题目要求你写出不大于 的正整数的阶乘的和,但每个正整数相隔 (即求 的和)。现在给出整数 ,按上面要求输出阶乘之和 。
要做这道题,需要知道阶乘公式。
阶乘公式:。
所以,这道题实际上在求 的值。
思路
我选择写一个mul函数,通过循环来计算单个数字的阶乘,再在主函数内进行for循环来将阶乘累加。
需要注意的是,阶乘函数和各个累加变量一定要用long long类型,因为n的最大可能 已经比 更大;还有一点,在主函数中的循环一定是从 开始累加,自增数量为 ,因为是从 开始,正整数相隔 个数字!
代码
#include <iostream>
using namespace std;
long long mul(int n){
long long sum = 1;
for (int i = 1;i <= n;i++){
sum *= i;
}
return sum;
}
int main(){
long long n,sum = 0;
cin >> n;
for (int i = 1;i <= n;i += 3){
sum += mul(i);
}
cout << sum;
return 0;
}
2024年10月07日 版本1
这里空空如也












有帮助,赞一个