2025-03-08:使两个整数相等的位更改次数。用go语言,给定两个正整数 n 和 k。
你可以从 n 的二进制表示中选择任意一个位,如果该位为 1,则可以将其改为 0。
请返回将 n 改为 k 所需的改动次数。如果无法做到,返回 -1。
1 <= n, k <= 1000000。
输入: n = 13, k = 4。
输出: 2。
解释:
最初,n 和 k 的二进制表示分别为 n = (1101)2 和 k = (0100)2,
我们可以改变 n 的第一位和第四位。结果整数为 n = (0100)2 = k。