【题目描述】
给你两个正整数
n
和k
。你可以选择
n
的 二进制表示 中任意一个值为 1 的位,并将其改为 0。返回使得
n
等于k
所需要的更改次数。如果无法实现,返回 -1。示例 1:
输入: n = 13, k = 4
输出: 2
解释:
最初,n
和k
的二进制表示分别为n = (1101)2
和k = (0100)2
,我们可以改变
n
的第一位和第四位。结果整数为n = (0100)2 = k
。示例 2:
输入: n = 21, k = 21
输出: 0
解释:
n
和k
已经相等,因此不需要更改。