package com.kingdz.algorithm.time201707;
/**
* <pre>
*
* http://judgecode.com/problems/1023
*
* Write a function to determine the number of bit changings required to convert integer A to integer B.
*
* Note a bit is a binary digit 0 or 1.
*
* </pre>
*
* @author kingdz
*
*/
public class Algo14 {
public static void main(String[] args) {
int a = 52;
int b = 100;
int ret = cal(a, b);
System.out.println(ret);
}
private static int cal(int a, int b) {
String sa = Integer.toBinaryString(a);
String sb = Integer.toBinaryString(b);
if (sa.length() < sb.length()) {
sb = sb.substring(sb.length() - sa.length());
} else {
while (sa.length() != sb.length()) {
sb = "0" + sb;
}
}
int count = 0;
for (int i = 0; i < sa.length(); i++) {
char ca = sa.charAt(i);
char cb = sb.charAt(i);
if (ca != cb) {
count++;
}
}
return count;
}
}
【算法】程序猿不写代码是不对的79
最新推荐文章于 2023-12-24 16:00:47 发布