【发布时间】:2021-04-21 12:51:27
【问题描述】:
给定数字 x 在基数 (-2) 中的二进制表示,返回上限 (x/2) 在基数 (-2) 中的二进制表示。
O(1)中有解决方案吗?我试图想出一个“匹配”操作来向左移动,就像如果基数为 2 但找不到任何内容一样。
有没有比将 x 从基数 (-2) 转换为十进制,然后计算上限 (x/2) 并找到以基数 (-2) 为基数的二进制表示更好的方法?
【问题讨论】:
-
提示:
-1 = -2 + 1。这意味着(-1)(-2)^k = 1(-2)^k + 1(-2)^{k+1}等。