Leetcode 3226. 使两个整数相等的位更改次数

模拟题,但是要注意按位与操作和比较运算符的优先级,比较运算符优先级更高,所以t1,t2这样写,不然就得加括号。

 1 class Solution {
 2 public:
 3     int minChanges(int n, int k) {
 4         int res=0;
 5         while(n&&k){
 6             int t1=n&1;
 7             int t2=k&1;
 8             if(t1!=t2){
 9                 if(t1==1)
10                     res++;
11                 else
12                     return -1;
13             }
14             n>>=1;
15             k>>=1;
16         }
17         if(k)
18             return -1;
19         while(n){
20             int t1=n&1;
21             if(t1)
22                 res++;
23             n>>=1;
24         }
25         return res;
26     }
27 };

 

posted on 2024-11-02 12:09  greenofyu  阅读(3)  评论(0编辑  收藏  举报