关于用c++求 阶乘之和的问题:

首先声明我是一个初学者,不会编太难的程序,我在网上找到了关于用c++求阶乘之和的代码:(如下)#include<iostream>usingnamespacestd;in... 首先声明我是一个初学者,不会编太难的程序,我在网上找到了关于用c++求阶乘之和的代码:(如下)

#include<iostream>
using namespace std;
int main()
{
int i,s=1,sum=0;
for(i=1;i<=10;i++)
{
s=s*i;
sum=sum+s;
}
cout<<"sum="<<sum<<endl;
return 0;
}

我需要详细的解释:为什么这样编就能求出阶乘之和呢?请把电脑判断的过程告诉我,例如:s=s*i 对求阶乘的影响等等……

越详细越好,否则我宁可被倒扣分,也不会给任何人……谢谢了
展开
 我来答
490749157
推荐于2017-10-07 · TA获得超过738个赞
知道小有建树答主
回答量:276
采纳率:100%
帮助的人:339万
展开全部
上面我们就不看了,直接从循环开始看。这是做10的阶乘。因为每次循环的过程都是一样的,为方便后面的叙述,我将这个程序改为计算5的阶乘,就是只把循环条件改为i<=5,其他条件不变,不影响程序本身的思路。
首先已经定义了i=1,s=1;进行第一次循环条件判断。i小于等于5吗?因为i=1,所以i小于10,进行循环体的执行。将s*i的值赋给s,即s=1*1,这时s=1;sum=0+1=1;循环体执行完毕,循环变量i++;i=2;
这时进行第二次循环条件的判断:此时i=2,i小于5吗?因为i=2,所以i小于10,进行循环体执行,s=s*i=1*2=2;sum=1+2=3;循环体执行完毕,循环变量i++,i=3;
依次执行之后的循环判断,直到i大于5的时候停止循环。在真个循环中循环体中的变量情况:
i=1,s=1*1=1;sum=0+1=1;i++=2;
i=2, s=1*2=2;sum=1+2=3;i++=3;
i=3,s=2*3=6;sum=3+6=9;i++=4
i=4, s=6*4=24;sum=9+24=33;i++=5;
i=5, s=24*5=120,sum=33+120=153,i++=6;
i=6,i小于等于5吗?因为i=6,i>5,所以不满足循环条件,循环结束。执行下面的输出语句,打印sum的值。sum=153.
其实抛开程序本身来说,只看我列的那组数据,就是我们计算阶乘之和的思路,如果你看不懂程序的话,可能是程序中相同变量名之间的赋值。比如s=s+1,++i,sum+=s。。这种表达式是经常要用的,解释起来有点麻烦,但其实很简单的,好好看一下代码就能立即了。
最后祝你成功
咎睿拓跋博裕
2019-10-19 · TA获得超过3845个赞
知道大有可为答主
回答量:3107
采纳率:31%
帮助的人:189万
展开全部
上面我们就不看了,直接从循环开始看。这是做10的阶乘。因为每次循环的过程都是一样的,为方便后面的叙述,我将这个程序改为计算5的阶乘,就是只把循环条件改为i<=5,其他条件不变,不影响程序本身的思路。
首先已经定义了i=1,s=1;进行第一次循环条件判断。i小于等于5吗?因为i=1,所以i小于10,进行循环体的执行。将s*i的值赋给s,即s=1*1,这时s=1;sum=0+1=1;循环体执行完毕,循环变量i++;i=2;
这时进行第二次循环条件的判断:此时i=2,i小于5吗?因为i=2,所以i小于10,进行循环体执行,s=s*i=1*2=2;sum=1+2=3;循环体执行完毕,循环变量i++,i=3;
依次执行之后的循环判断,直到i大于5的时候停止循环。在真个循环中循环体中的变量情况:
i=1,s=1*1=1;sum=0+1=1;i++=2;
i=2,
s=1*2=2;sum=1+2=3;i++=3;
i=3,s=2*3=6;sum=3+6=9;i++=4
i=4,
s=6*4=24;sum=9+24=33;i++=5;
i=5,
s=24*5=120,sum=33+120=153,i++=6;
i=6,i小于等于5吗?因为i=6,i>5,所以不满足循环条件,循环结束。执行下面的输出语句,打印sum的值。sum=153.
其实抛开程序本身来说,只看我列的那组数据,就是我们计算阶乘之和的思路,如果你看不懂程序的话,可能是程序中相同变量名之间的赋值。比如s=s+1,++i,sum+=s。。这种表达式是经常要用的,解释起来有点麻烦,但其实很简单的,好好看一下代码就能立即了。
最后祝你成功
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
249655868
2009-11-26 · 超过10用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:30.7万
展开全部
这是求1到10的阶乘和
#include<iostream>
using namespace std;
int main()
{
int i,s=1,sum=0;(给变量符初值)
for(i=1;i<=10;i++)(保证求的是1到10的阶乘和)
{
s=s*i;(求阶乘当i=1时。s=1*1;当i=2是s=1*1*2;等等)
sum=sum+s;(求阶乘和)
}
cout<<"sum="<<sum<<endl
return 0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cgiggle
2009-11-26 · TA获得超过1957个赞
知道大有可为答主
回答量:1996
采纳率:0%
帮助的人:1264万
展开全部
#include<iostream>
using namespace std;
int main()
{
int i,s=1,sum=0;
for(i=1;i<=10;i++)
{
s=s*i;//s是存放各个数的阶乘的变量
sum=sum+s;//sum是存放各个阶乘之和的变量
}
cout<<"sum="<<sum<<endl;//输出即可
return 0;
}
//我尽力解释了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hb001205
2009-11-26
知道答主
回答量:51
采纳率:0%
帮助的人:24.5万
展开全部
int i,s=1,sum=0;
for(i=1;i<=10;i++)
{
s=s*i;
sum=sum+s;
}
i=1;s=s*1=1;sum=sum+s=0+1=1;
i++;
i=2;s=s*2=2;sum=sum+s=1+2=3;
i++;
i=3,s=s*3=2*3=6;sum=sum+s=3+6=9;
一直到i=10 循环完了就退出循环了
建议设置断点单步看程序运行
VC6.0 F9设置断点 F5单步运行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式