输入:整数A 输出:整数B 条件:A和B的二进制1的个数相同,且A和B之间的距离|A-B|最小。
javascript:
var num = 1;
var str = parseInt(num).toString(2),n;
n = /10/.test(str) ? str.replace(/^(\d*)10(0*)$/g,function($,b,c,d){return b+"01"+d}):
str.replace(/^1(1*)$/g,function($,b){return "10"+b});
console.log(parseInt(n,2));