如何在此代码挑战中获得此测试用例的结果?

时间:2014-10-03 03:44:30

标签: java math

我很难理解这个挑战的测试用例。 problem说明是:

2-sum是数字列表的总和,但是2之后的每个数字都被计算两次。给出一个数字列表,打印出他们的2和。 例如,当输入1 2 3 4作为输入时,打印14,将1和3的数字之和计数两次。

测试用例:

1 2 3 4 = 14

2 1 3 6 2 6 = 33

7 9 -10 5 -5 3 -1 = 8

2 2 8 2 2 14 2 2 = 68

-23 13 7 6 9 11 -5 2 0 = 15

我不明白的测试用例 2 2 8 2 2 14 2 2 = 68 有8个数字,我试过这样:

2 + 14 + 4 + 28 + 4 = 58,然后我知道其他10在哪里,这对我来说很困惑,因为在开始,中间和结尾都有2个。 帮助赞赏

1 个答案:

答案 0 :(得分:2)

根据问题:

every number that's next to a 2 is counted twice

换句话说,只要在之前直接 之后列表中的数字,这个数字就会占总和的两倍。在你关心的测试用例中,列表中的所有数字都与2相邻,所以每个数字都计算两次,所以答案是:

2 * (2 + 2 + 8 + 2 + 2 + 14 + 2 + 2) = 2 * 34 = 68