基尔霍夫定律说,当你把所有的电流(对于通往一个交界处的电流是正的,对于离开一个交界处的电流是负的)加起来,你就会得到结果0。
看下面的图表:

用基尔霍夫定律,你可以看到i1 + i4 - i2 - i3 = 0,所以i1 + i4 = i2 + i3。
给出两个列表,一个包含所有的电流进入交界处,另一个用除一个以外的所有电流离开连接,输出最后一个。
测试案例:
[1, 2, 3], [1, 2] = 3
[4, 5, 6], [7, 8] = 0
[5, 7, 3, 4, 5, 2], [8, 4, 5, 2, 1] = 6第二个列表总是比第一个列表少一个项。输出不能为负值。最小的节目赢了。
发布于 2016-02-07 11:58:56
_S在这里试试!
在第一个参数中获取输入电流,在第二个参数中获取离开电流。_对它们进行两两减法,将单个元素从较长的列表中删除为-is,而S则对结果进行求和。
发布于 2016-02-07 15:55:41
(.sum).(-).sum用法示例:( (.sum).(-).sum ) [5,7,3,4,5,2] [8,4,5,2,1] -> 6。
把每个列表加起来,然后取差额。
发布于 2016-02-07 12:04:53
代码:
OEO-解释:
O # Take the sum of the input list
E # Evaluate input
O # Take the sum of the input list
- # Substract from each other感谢Luis提醒我,我需要实现一个级联函数。如果我能更早地实现它,它将是3个字节:
第一个列表是离开当前列表,第二个列表是输入当前列表。代码:
(«O解释:
( # Negate the list, e.g. [3, 4, 5] would become [-3, -4, -5]
« # Concatenate the second list to the first
O # Take the sum and implicitly output it使用CP-1252编码。
https://codegolf.stackexchange.com/questions/71345
复制相似问题