程序员面试金典

时间:2022-07-03 00:42:08

程序员面试金典 -- 整数转化

题目描述

编写一个函数,确定需要改变几个位,才能将整数A转变成整数B。

给定两个整数int A,int B。请返回需要改变的数位个数。

测试样例:
10,5
返回:4

 

 

class Transform {
public:
int calcCost(int A, int B) {
// write code here
int cnt = 0, val = A^B;
while(val){
if(val%2 == 0){
val /= 2;
}else{
val = (val - 1)/2;
cnt++;
}
}
return cnt;
}
};