第二个循环有问题,
s存储每一次阶乘的值,但没有初始化,举例:
当i=2时,计算得出s=2;
当i=3时,s=s*1*2*3=2*1*2*3=12,明显是错的
这些同楼上的看法,下面是我写的一个程序,你借鉴下吧(不需要初始化s,也只需单循环,比较较简单),求采纳(程序已经测试无误了)
#include
int main()
{
int sum=0,s=1,i,n;
cout<<"请输入n的值:";
cin>>n;
for(i=1;i<=n;i++)
{
sum+=(s*i);
s*=i;
}
cout<
}
s存储每一次阶乘的值,但没有初始化,举例:
当i=2时,计算得出s=2;
当i=3时,s=s*1*2*3=2*1*2*3=12,明显是错的
自己应该会改吧?
另外:算下一个数的阶乘时,之前的结果可以保存起来,直接乘以当前值即可,没有必要再从1做一次循环了!自己思考下!
每次运算玩后,s要重新置1哈,亲