【问题标题】:Sum of Multiplication of each number with sum of other numbers of an array in rotational manner以旋转方式将每个数字与数组的其他数字之和相乘的和
【发布时间】:2023-04-10 16:27:01
【问题描述】:

例子:

输入:[4 3 5 1]
输出:118

解释:

4*(3+5+1)=>36
3*(4+5+1)=>30
5*(4+3+1)=>40
1*(4+3+1)=>12
Therefore, (36+30+40+12=)118

实现它的代码是什么?

【问题讨论】:

  • 第四行应该是1*(4+3+5)=>12
  • 所有发布的只是程序说明,​​但这并不能告诉我们您遇到了什么问题。你尝试过什么,遇到过什么烦恼?请edit您的帖子包含valid question,我们可以回答。提醒:确保您知道on-topic 是什么;要求我们为您编写程序、建议和外部链接都是题外话。

标签: python arrays data-structures


【解决方案1】:

您可以将sum 与生成器理解一起使用:

lst = [4, 3, 5, 1]

output = sum(x * (sum(lst) - x) for x in lst)
print(output) # 118

如果列表很长,那么您可能需要预先计算 sum(lst) 并将其存储在单独的变量中。

【讨论】:

    【解决方案2】:

    您可以通过从总和的平方中减去平方和来获得该结果:

    a = [4,3,5,1]
    
    sum(a)**2 - sum(n**2 for n in a)  # 118
    

    【讨论】:

      猜你喜欢
      • 2019-10-10
      • 1970-01-01
      • 1970-01-01
      • 2020-04-16
      • 2016-10-07
      • 2020-05-26
      • 1970-01-01
      • 2010-12-24
      • 1970-01-01
      相关资源
      最近更新 更多