这道题很直接,想到,先变为二进制,然后,x,y变为二进制后一个一个比较,不一样就加1,
对于如何变为二进制,就是除以二后的余数倒过来写,但是,这道题仅仅只是比较不一样的个数,
所以顺序问题就不必考虑,直接比较。
class Solution { public int hammingDistance(int x, int y) { int count = 0; int i,j; int m,n; while(true) { m = x%2; n = y%2; if(m != n) { count++; } x = x/2; y = y/2; if(x == 0&&y == 0) { break; } } return count; } }
不用特意考虑x,y变为0怎么办,因为假如为0,m,x或者n,y不会改变。