原题如下:
首先,我们应该需要考虑的是,在数组中,怎么去除索引是i的数,所以我们可以有这样一个思路,就是将数组的所有数乘积获得一个总的乘积,然后我们遍历数组,除以下索引为i的数,这样我们就可以得到一个新的乘积数组。
第二种方法,就是我们可以遍历两次数组,用两次循环,第一次控制提出下标为i的元素,剩余的在内层循环里面做乘积运算,获取新的值,赋值给新的数组。
以下是我的代码,希望大佬有不同方法的评论出来。
第一种方法用python实现:
list1 = [3,2,1]
list2 =[]
for i in range(len(list1)):
sum = 1
for j in list1:
sum*=j
sum = sum//list1[i]
list2.append(sum)
print(list2)
第二种方法python实现:
list1 = [3,2,1]
for i in list1:
sum = 1
for j in list1:
if i != j:
sum*=j
list2.append(sum)
print(list2)
其实这个题不难,主要是锻炼一下思维逻辑。欢迎大佬们指出问题,或者是有更好的方法请分享出来。