标签: binary numbers bit
我在测试中发现了这个问题并且无法解决它:给定两个任意数字,如何在不计算产品本身的情况下计算其产品的二进制表示中的1位的数量?解决方案的渐近复杂度必须为O(log(A+B)),其中A和B是给定因素。
1
O(log(A+B))
A
B
例如,如果A和B为3和7,则产品为21。 21的二进制表示为10101,其中有三个1位,因此答案为3。
3
7
21
10101
有人可以建议怎么做吗?