内部每次循环结束后将小s置为1,不然上一次的运算结果会累积到下一次上
在S+=s;
后添加一行s=1;
即可
有帮助望采纳~
在每次进第二重循环时,s=1;
如果没将s置1的话,s一直累成,会变得越来越大
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n,s=1,S=0;
cin>>n;
for(int i=1; i<=n;i++)
{
s=1;
for(int j = 1; j<=i; j++)
{
s = s*j;
}
S +=s;
}
cout<<S;
return 0;
}
第一个for循环开始时,加s=1;