不要与最小公共倍数混淆。
给定一个包含多个元素的正整数列表,返回数组中两个元素的最常见乘积。
例如,列表[2,3,4,5,6]的MCM是12,因为产品表是:
2 3 4 5 6
---------------
2 | # 6 8 10 12
3 | # # 12 15 18
4 | # # # 20 24
5 | # # # # 30
6 | # # # # #谢谢DJMcMayhem给我的桌子
因为12出现的次数最多( 2*6和3*4两次)。请注意,我们不包括元素及其本身的乘积,因此2*2或4*4没有出现在此列表中。但是,相同的元素仍将被乘以,因此[2,3,3]的表如下所示:
2 3 3
----------
2 | # 6 6
3 | # # 9
3 | # # #而MCM是6。
如果是领带,您可以返回任何绑定元素,或者返回所有绑定元素的列表。
[2,3,4,5,6] -> 12
[7,2] -> 14
[2,3,3] -> 6
[3,3,3] -> 9
[1,1,1,1,2,2] -> 2
[6,200,10,120] -> 1200
[2,3,4,5,6,7,8,8] -> 24
[5,2,9,10,3,4,4,4,7] -> 20
[9,7,10,9,7,8,5,10,1] -> 63, 70, 90 or [63,70,90]发布于 2018-08-06 11:23:55
发布于 2018-08-06 10:51:29
eo/QN=*M.cQ2首先,我们采用输入的所有两个元素组合,而不需要替换(.cQ2)。然后,我们将这些对映射到它们的乘积(*M)。接下来,我们用产品列表(=)覆盖输入变量。接下来,我们根据产品列表(o/QN)中出现的次数对产品列表进行排序。最后,取排序列表(e)的最后一个元素。
发布于 2018-08-06 16:02:51
I=input('');i=I'*I*1-eye(nnz(I));mode(i(:))这也是一种绕口令!
I=input(''); % Takes an input like "[2,3,4,5,6]"
i=I'*I % Multiplies the input by its own transverse
*1-eye(nnz(I)); % Multiplies by 1-identity matrix to remove diagonal
mode(i(:)) % Calculates most common value and prints ithttps://codegolf.stackexchange.com/questions/170047
复制相似问题