二进制数组相加法

let n = 10;
let arr1 = [1],arr2 = [1];

for(let i=1;i<n;i++){
    arr1.push(Number(Math.random()>0.5));
    arr2.push(Number(Math.random()>0.5));
}

let result = [], add1 = 0;


//==== 算法部分 =====
for(let i=n-1;i>=0;i--){
    if(arr1[i] && arr2[i]){
        result.unshift(add1);
        add1 = 1;
    }else if(arr1[i] || arr2[i]){
        result.unshift(Number(!add1));
    }else{
        result.unshift(add1);
        add1 = 0;
    }
}
// ========


result.unshift(Number(add1));
console.log(arr1);
console.log(arr2);
console.log(result);

猜你喜欢

转载自www.cnblogs.com/zfcheng/p/9340357.html
今日推荐