给定整数数组,返回一个新数组,使得新数组的索引i中的每个元素都是原始数组中除i中的所有数字的乘积。Python实现。

原题如下:

首先,我们应该需要考虑的是,在数组中,怎么去除索引是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)

其实这个题不难,主要是锻炼一下思维逻辑。欢迎大佬们指出问题,或者是有更好的方法请分享出来。

猜你喜欢

转载自blog.csdn.net/stronking/article/details/81148109