数组变换 就是除掉当前元素,其他所有元素的积
数组变换 就是除掉当前元素,其他所有元素的积
华帝之魂 发表于4年前
数组变换 就是除掉当前元素,其他所有元素的积
  • 发表于 4年前
  • 阅读 8
  • 收藏 0
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

摘要: 搜狗笔试题:一个长度为n的数组a[0],a[1],...,a[n-1]。现在更新数组的名个元素,即a[0]变为a[1]到a[n-1]的积,a[1]变为a[0]和a[2]到a[n-1]的积,...,a[n-1]为a[0]到a[n-2]的积(就是除掉当前元素,其他所有元素的积)。 程序要求: 要求具有线性复杂度。 不能使用除法运算符。

就是除掉当前元素,其他所有元素的积

arr = (1, 2, 1, 1, 2, 1, 1, 2, 3, 2)
arr_sum = []
arr_sum1 = []
arr_sum2 = []
n = 10
sum_arr = 0
sum_1 = 1
sum_2 = 1
for i in range(0, n-1):
   sum_1 *= arr.__getitem__(i)
   arr_sum1.append(sum_1)
   print sum_1
print "*******"
for j in range(n-1, 0, -1):
   sum_2 *= arr.__getitem__(j)
   arr_sum2.insert(0, sum_2)
   print sum_2
arr_sum1.insert(0, 0)
arr_sum2.insert(9, 0)
print arr_sum1
print "----------"
print arr_sum2
for k in range(0, n):
   sum_arr = arr_sum1.__getitem__(k) + arr_sum2.__getitem__(k)
   arr_sum.append(sum_arr)
print arr_sum

这是输出结果:
[0, 1, 2, 2, 2, 4, 4, 4, 8, 24]
----------
[48, 24, 24, 24, 12, 12, 12, 6, 2, 0]
[48, 25, 26, 26, 14, 16, 16, 10, 10, 24]

初学用python写了一个简单的,如有不足之处,还望大家不吝赐教,也希望和大家一同探讨哈

标签: python 乘积
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 2
博文 1
码字总数 313
×
华帝之魂
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: