完全理解不了阶乘累加

完全理解不了阶乘累加

http://img1.sycdn.imooc.com//climg/5bbfd0930001befe10001779.jpg
i和j分别是什么?i控制累加是什么意思?为什么可以这样定义?其次这个循环是怎么执行的?S的值不是1*1,1*2,2*3,3*4吗?是怎么算出阶乘的完全没懂

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
慕用6373601 2018-12-22 12:28:37

http://img1.sycdn.imooc.com//climg/5c1dbc2e0001811912500814.jpg

在嵌套循环中,从外重循环开始,程序每执行1次,内重循环要执行多次,直到内从循环执行结束,然后执行sum=sum+s;  接下来再执行i++;当i=2时,内重for循环要执行2次才结束,计算是是2的阶乘(2!),然后是i++,当i=3时,内重for循环要执行3次才结束,计算是是3的阶乘(3!),以此类推,直到i=5时,i<=4为false,结束循环,输出阶乘的和。

  • 请问当i=3时候,j不是已经经过i=1 i=2 j=1 j=2的赋值吗。为何要从j=1开始算,j这个时候2吗
    2018-12-28 08:16:19
  • 第三次i=3的时候,j这时候不是经过两轮n++,已经等于3了吗。不是只循环一次吗
    2018-12-28 08:25:04
好帮手慕阿满 2018-10-15 09:34:23

关于for循环,它的执行流程如下图:

http://img1.sycdn.imooc.com//climg/5bc3edba0001520f04380151.jpg

当满足条件,先执行循环体,再自增。建议同学再去学习一下《Java流程控制之循环结构》中的for循环。祝:学习愉快。

好帮手慕阿满 2018-10-12 10:24:08

n的阶乘的计算方法为1*2*3*...*n。阶乘的累加和就是1!+2!+3!+4!,先算阶乘再相加。i和j是用来控制循环的变量,外层循环i从1开始,到4结束,每循环依次自增1,代表着1,2,3,4。内层循环j从1开始到i结束,在内层循环中s=s*j是用来计算阶乘,i为多少,则是计算多少的阶乘。当i为1时,s的值为1*1;i为2时,s的值为1*2;i为3时,s的值为1*2*3;i为4时,s的值为1*2*3*4。关于for循环,建议同学再去学习一下《Java流程控制之循环结构中》for循环。如果还有问题,可以继续提问。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 SomnusL #1
    还是不太懂 控制循环变量指的是什么?i倒是好懂 j是控制什么的?S是怎么算的还是不是不太明白能不能稍微说详细一点
    2018-10-12 14:10:11
  • 好帮手慕阿满 回复 提问者 SomnusL #2
    for(int j=1;j<=i;j++)对于内层循环,用j来控制循环次数。如果j<i;就执行循环体中的代码并将j的值自增1。内层循环中的代码为s=s*j。 当i=1时,s=1,j=1,s=s*j=1,j自增为2>1结束内层循环执行外层循环。sum=0,sum=sum+s=1; 当i=2时,s=1;j=1<2;执行循环s=s*j=1;j自增为2,j=2继续执行循环s=s*j=1*2=2。j自增为3>2退出内层循环,执行外层循环sum=sum+s=1+2=3。 当i=3时,s=1;j=1<3;执行循环s=s*j=1;j自增为2,j<3继续执行循环s=s*j=1*2=2,j自增为3,j=3继续执行循环,s=s*j=2*3=6,j自增为4>3退出内层循环,执行外层循环sum=sum+s=3+6=9。 当i=4时,s=1;j=1<4;执行循环s=s*j=1;j自增为2,j<4继续执行循环s=s*j=1*2=2,j自增为3,j<4继续执行循环,s=s*j=2*3=6,j自增为4,j=4继续执行循环s=s*j=6*4=24,j自增为5>4退出内层循环,执行外层循环sum=sum+s=9+24=33。此时i=4,再自增为5不满足i<=4,所以循环结束。 如果同学还有问题,可继续提问。祝:学习愉快!
    2018-10-12 15:09:06
  • 提问者 SomnusL 回复 好帮手慕阿满 #3
    为什么执行j++之后下一次j还是从1开始判断啊
    2018-10-14 18:53:24
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师