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.trim().split('\n'); // 去除可能的空白字符并按行分割 11 const decimalNumber = parseInt(inputArray[0], 10); // 将第一行转换为十进制整数 12 13 if (isNaN(decimalNumber) || decimalNumber <= 0) { 14 console.error('请输入一个有效的十进制正整数'); 15 process.exit(1); // 非零退出码表示错误 16 } 17 18 /** 19 * 将十进制数转换为二进制,并统计二进制中 '1' 出现的次数 20 */ 21 const binaryString = decimalNumber.toString(2); // 转换为二进制字符串 22 const countOfOnes = (binaryString.match(/1/g) || []).length; // 使用正则表达式匹配 '1' 并计算其数量 23 24 console.log(countOfOnes); // 输出结果 25 process.exit(0); // 零退出码表示成功 26});
Copyright ©2010-2022 比特日记 All Rights Reserved.
Powered By 可尔物语