输入:
非空列表/向量,其中每个元素包含一个值/字符,表示如果你能指望向上 或向下。我将使用1
和-1
,但是您可以选择任何喜欢的东西。您只能使用两个值,而不能分别使用1,2,3...
和-1,-2,-3...
来表示向上和向下。
挑战:
您将使用几何序列1、2、4、8、16、32 ...中的数字。每次开始计数向上或向下,都可以在增量计数1,然后2,然后4上等等。如果更改并开始计数的其他方式,那么你就减1,然后2,然后4等。输出将是最后得到的数字。
例子:
在下面的示例中,第一行是输入,第二行是您要递增/递减的数字,第三行是累积总和,最后一行是输出。
范例1:
1 1 1 1 1 1 1 1 1 1
1 2 4 8 16 32 64 128 256 512
1 3 7 15 31 63 127 255 511 1023
1023
范例2:
1 1 1 1 1 1 -1 -1 -1 -1 1 1 1
1 2 4 8 16 32 -1 -2 -4 -8 1 2 4
1 3 7 15 31 63 62 60 56 48 49 51 55
55
如您所见,第一个1
或-1
“重置”我们正在计算的值,连续的1
或序列-1
意味着将值加倍。
范例3:
-1 -1 1 1 -1 -1 -1
-1 -2 1 2 -1 -2 -4
-1 -3 -2 0 -1 -3 -7
-7
一些其他测试用例可以解决一些潜在的极端情况。
输入在第一行。输出在第二个。
1
1
-------
-1
-1
-------
-1 1 -1 1 -1 1 -1 1 -1 1 -1 1
0
这是代码高尔夫球,因此每种语言中提交时间最短的文件将获胜。
®ì2Ãx
,以xì2
挽救两个字节。