/**
* @param {number} num1
* @param {number} num2
* @return {number}
*/
var add= function(a, b) {
if(a===0||b===0) return a||b;
return bitadd(a,b);
};
function bitadd(a,b){
if(b!==0){
[a,b]=[a^b,(a&b)<<1];
return bitadd(a,b);
}else{
return a;
}
}