关于用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 对求阶乘的影响等等……
越详细越好,否则我宁可被倒扣分,也不会给任何人……谢谢了 展开
#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 对求阶乘的影响等等……
越详细越好,否则我宁可被倒扣分,也不会给任何人……谢谢了 展开
7个回答
展开全部
上面我们就不看了,直接从循环开始看。这是做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。。这种表达式是经常要用的,解释起来有点麻烦,但其实很简单的,好好看一下代码就能立即了。
最后祝你成功
首先已经定义了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。。这种表达式是经常要用的,解释起来有点麻烦,但其实很简单的,好好看一下代码就能立即了。
最后祝你成功
展开全部
上面我们就不看了,直接从循环开始看。这是做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。。这种表达式是经常要用的,解释起来有点麻烦,但其实很简单的,好好看一下代码就能立即了。
最后祝你成功
首先已经定义了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。。这种表达式是经常要用的,解释起来有点麻烦,但其实很简单的,好好看一下代码就能立即了。
最后祝你成功
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是求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
}
#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
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
//我尽力解释了
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;
}
//我尽力解释了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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单步运行
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单步运行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询