|
楼主 |
发表于 2019-11-13 23:55:27
|
显示全部楼层
本帖最后由 湛无双 于 2019-11-14 00:03 编辑
sum_t = [0, 0, 0]
for i in range(3):
for j in range(i+1, 3):
sum1 = 0
sum2 = 0
for q in range(start[j], end[j]):
sum1 = sum1+a[q]*k[q]
for p in range(start, end):
sum2 = sum2+a[j-1][p]*k[p]
print(sum1+sum2)
已解决,问题在于for j in range(i+1,3)这个里面,j的取值不能等于3,必须是小于3的,所以执行过程中i与j的取值分别为(i=0,j=1) ( i=0,j=2) ( i=1,j=2)
至于i=2的时候,j是循环是不成立的,因此内层j的循环次数在i=0,1,2的情况下分别执行2,1,0次。以前对于这个的理解有误,现在没问题了。
因此对于提出的问题,c的大小不是由i的循环次数决定的,而是由第二层j循环的执行次数决定,即i=0时j循环2次,得到数组c[0]和c[1];然后i=1时j循环1次,得到数组c[2];最后i=2时j不做任何循环,不给数组c贡献任何数值。 |
|