如何对来自函数的数字求平方?

问题描述 投票:0回答:1

我是 javascript 和编码的新手。我不能取来自函数的数字的平方。我在下面写了我想要做的事情。谢谢大家。

// BİNARY to DECİMAL 

// (100110)2 > (1 × 2⁵) + (0 × 2⁴) + (0 × 2³) + (1 × 2²) + (1 × 2¹) + (0 × 2⁰) = 38

let binary= prompt("Write a Binary Number");

function binaryToDecimalConverter(binary){
    let decimal=0;
    let power=0;
    for(let i=binary.length-1; i>=0; i--){
        decimal+=Number(binary.charAt(i)) * Math.pow(2,power);
        power++;
    }
    console.log("Decimal : " + decimal);
    console.log(squareIt(decimal));
    
}


binaryToDecimalConverter(binary);

function squareIt(decimal){  //38 is here and I want to get it like: (3^2 + 8^2)=73 as result ??
    let sNumber=decimal.toString();
    let total=0;
    for(let i=sNumber.length-1; i>=0; i--){
        total+=Number(sNumber.charAt(i))*Math.pow(sNumber,2);
        
    }
    return total;    
}




我想将用户输入的二进制数转换为十进制数,我还想对该数字的每个字符求平方并对它们求和。

javascript function binary decimal square
1个回答
0
投票

您可以将数字拆分为字符并使用

Array::reduce()
:

let binary= prompt("Write a Binary Number");

function binaryToDecimalConverter(binary){
    let decimal=0;
    let power=0;
    for(let i=binary.length-1; i>=0; i--){
        decimal+=Number(binary.charAt(i)) * Math.pow(2,power);
        power++;
    }
    console.log("Decimal : " + decimal);
    console.log(squareIt(decimal));
    
}


binaryToDecimalConverter(binary);

function squareIt(decimal){  //38 is here and I want to get it like: (3^2 + 8^2)=73 as result ??
    return decimal.toString().split('').reduce((sum, c) => sum + c * c, 0);
}

© www.soinside.com 2019 - 2024. All rights reserved.