1process.stdin.resume(); 2process.stdin.setEncoding('utf-8'); 3let input = ''; 4 5process.stdin.on('data', (data) => { 6 input += data; 7}); 8 9process.stdin.on('end', () => { 10 let inputArray = input.split('\n'); 11 let a = inputArray[0]; 12 let b = inputArray[1]; 13 14 // 为了处理长度不一致的情况,对较短字符串前面补0 15 let maxLength = Math.max(a.length, b.length); 16 a = a.padStart(maxLength, '0'); 17 b = b.padStart(maxLength, '0'); 18 19 let carry = 0; // 进位 20 let result = ''; 21 22 // 从低位到高位逐位相加 23 for (let i = maxLength - 1; i >= 0; i--) { 24 let sum = parseInt(a[i], 2) + parseInt(b[i], 2) + carry; 25 carry = Math.floor(sum / 2); // 计算进位 26 result = (sum % 2).toString() + result; // 当前位的值 27 } 28 29 // 如果最高位还有进位,需要加上 30 if (carry > 0) { 31 result = carry.toString() + result; 32 } 33 34 console.log(result); 35 process.exit(); 36});
Copyright ©2010-2022 比特日记 All Rights Reserved.
Powered By 可尔物语