如何对二进制转十进制函数返回值的每一位平方后求和?
解决方案
实现思路
- 将十进制数字转为字符串,拆分出每一位字符
- 把每一位字符转为数字后计算平方
- 累加所有平方值得到结果
完整代码示例
假设你的二进制转十进制函数如下,我们整合平方求和功能:
// 二进制转十进制函数(你已实现的部分) function binaryToDecimal(binaryStr) { return parseInt(binaryStr, 2); } // 计算十进制数每一位平方和的函数 function calculateDigitSquareSum(num) { // 转字符串拆分每一位,遍历累加平方值 return num.toString().split('').reduce((total, digit) => { const currentNum = Number(digit); return total + currentNum * currentNum; }, 0); } // 调用示例 const binaryInput = '100110'; // 对应十进制38 const decimalNum = binaryToDecimal(binaryInput); const squareSum = calculateDigitSquareSum(decimalNum); console.log(squareSum); // 输出73
代码说明
num.toString().split(''):把数字转为字符串后拆分为单个字符的数组,比如38会变成['3','8']reduce方法:遍历数组,初始化累加值为0,每次把当前数字的平方加到累加值中- 若输入数字为0,代码也能正确返回0,无需额外特殊处理
内容的提问来源于stack exchange,提问作者codAction
相关产品推荐
相关产品推荐

