


第二张图片的代码为什么要改成第三张图片中的代码?(即为啥多定义一个j、多一个关于j的内嵌、把第二张图片第15行代码中的i换成j)



比如n=3
an=sn=123=6
n=4
an有两个值,a3和a4
a3=123
a4=123+234=30
sn=a3+a4
n=5
an有3个
a3=!23
a4=!23+234
a5=!23+234+345
sn=a3+a4+a5
所以根据题目,图二是正确的代码
是读题的思路问题
图2我们认为an=sn
而根据图3,我们认为sn为n-2个an的总和
所以第一层i循环是n-2项
第二层j循环是an,每一个an有j-2项
比如n=5
i=3;i<=5;i++
总共3项
j=3;j<=5-i+3;j++
当i=3时
j=3;j<=5;j++
an=0+321
sn=0+an
an=0
j=4;
an=0+432
sn=an+sn=432+321
an=0
j=5
an=543
sn=an+sn=543+432+321
也就是i=3的时候计算的是
a5=543+432+321
当i=4
j=3;j<=4;j++
an=0+321
sn=0+an
an=0
j=4;
an=0+432
sn=an+sn=432+321
an=0
也就是i=4的时候计算的是
a4=432+321
i=5时
j=3;j<=3;j++
an=0+321
sn=0+an
an=0
也就是i=5的时候计算的是
a3=321
而sn=s5=a3+a4+a5
OK,有点绕,大概就是这么个意思,或许自己写代码更容易理解吧