c++语言 n的阶乘相加

2025-01-07 20:23:11
推荐回答(3个)
回答1:

第二个循环有问题,
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< return 0;
}

回答2:

s存储每一次阶乘的值,但没有初始化,举例:
当i=2时,计算得出s=2;
当i=3时,s=s*1*2*3=2*1*2*3=12,明显是错的

自己应该会改吧?

另外:算下一个数的阶乘时,之前的结果可以保存起来,直接乘以当前值即可,没有必要再从1做一次循环了!自己思考下!

回答3:

每次运算玩后,s要重新置1哈,亲