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

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

题目描述

编写一个函数,确定需要改变几个位,才能将整数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; 
    }
};

  

posted @ 2017-07-13 21:20  zhang--yd  阅读(151)  评论(0编辑  收藏  举报