0
已解决
项想
初级守护
初级守护
2271 高级阶乘和 经验值:800
题目描述 Description
已知s=1!+2!+3!+…+n!,这时s是从1到n的所有阶乘的和。老师把题目升级了,想要求从m到n的所有阶乘的和。(1<=m<n<=15)
输入描述 Input Description
两个数字m和n,用空格隔开
输出描述 Output Description
一个数字,求得的阶乘和
样例输入 Sample Input
1 3
样例输出 Sample Output
9
#include<iostream>
using namespace std;
long long m,n,s=1,sum;
int main(){
cin>>m>>n;
for(int i=1;i<=n;i++){
s*=i;
sum+=s;
if(i>m){
s+=i;
}
}
cout<<s;
return 0;
}
请问这一题我什么地方错了?
谢谢各位
0
已采纳
丁博扬
中级天翼
中级天翼
这题需要用到双重循环(我是这么做的)
先定义n和m
定义累乘计数器sum和f
从n循环遍历到m
sum归成1
j循环从1遍历到i
sum*=j;
f=f+sum;
- 循环(i循环从m遍历到n){
- sum=1;
- 循环(j循环从1遍历到i){
- sum=sum*j;
- }
- f=f+sum;
- }
记得所有变量都要定义成long long类型的
丁博扬在2020-12-20 20:08:13追加了内容
输入m和n
0
汪子晨
修练者
修练者
- for(int i=1;i<=m-1;i++){
- s*=i;
- }
- for(int i=m;i<=n;i++){
- s*=i;
- sum+=s;
- }
- cout<<sum;
- //简单!!!
0
0
0