我最近接受了Codility测试,我想知道如何否定-2基数?
例如,数组在基数-2中[1,0,0,1,1]表示9:
-2 bases:
1,-2,4,-8,16
1 + (-8) + 16 = 9
[1,0,0,1,1]
Run Code Online (Sandbox Code Playgroud)
基数为-2的负9 为:
-2 bases:
1,-2,4,-8
1 + (-2) + -8 = -9
[1,1,0,1]
Run Code Online (Sandbox Code Playgroud)
我对这个问题一无所知.必须有一些直观的解决方案.你有什么提示吗?
rua*_*akh 16
在基数-2中,位置i处的1 表示(-2)i.
因此,位置[ i,i + 1]中的[1,1] 表示(-2)i +( - 2)i +1 =( - 2)i +( - 2)( - 2)i =(1 + -2)( - 2)i = - ( - 2)i.
因此,您可以通过将其更改为[1,1]来否定任何[1,0]的出现,反之亦然.
当然,任何其他出现的0都可以保持不变:-0 = 0.
所以在你的例子中,我们将[1,0,0,1,1]分成[{1,0},{0},{1,1}],否定每个部分得到[{1,1},{ 0},{1,0}],即[1,1,0,1,0],并删除不必要的高0,产生[1,1,0,1].
| 归档时间: |
|
| 查看次数: |
1379 次 |
| 最近记录: |