繁体   English   中英

如何广场数的数字?

[英]How do I square a number's digits?

如何广场数的数字? 例如:

square(21){};

应该是41而不是441

这可以通过简单的数学轻松完成。 无需字符串处理的开销。

 var result = []; var n = 21; while (n > 0) { result.push(n%10 * n%10); n = Math.floor(n/10); } document.body.textContent = result.reverse().join(""); 

循环中,当您的数字大于0时,它...

  • 获得使用%运算符将数字除以10的余数

  • 将其平方并添加到数组中。

  • 通过将原始数字除以10来减少原始数字,将其截断到小数点右边,然后重新分配它。

然后最后将其反转并将数组连接到结果字符串(如果需要,可以将其转换为数字)

我认为他的意思如下:

    var output = "";
    for(int i = 0; i<num.length; i++)
    {
        output.concat(Math.pow(num[i],2).toString());
    }

我相信这是OP所寻找的吗? 每个数字的平方?

var number = 12354987,
var temp = 0;

for (var i = 0, len = sNumber.length; i < len; i += 1) {
    temp = String(number).charAt(i);
    output.push(Number(temp) * Number(temp));
}

console.log(output);

将字符串拆分为一个数组,返回元素正方形的map ,然后将所得数组重新加入字符串。

function squareEachDigit(str) {
    return str.split('').map(function (el) {
        return (+el * +el);
    }).join('');
}

squareEachDigit('99') // 8181
squareEachDigit('52') // 254

演示

您需要将数字拆分为它们的位置值,然后对它们求平方,然后将它们连接在一起。 这是我的处理方式:

function fn(num){
    var strArr = num.toString().split('');
    var result = '';
    for(var i = 0; i < strArr.length; i++){
     result += Math.pow(strArr[i], 2) + '';
    }

    return +result;
}

使用Math.pow对这样的数字进行平方:

Math.pow(11,2); // returns 121

 function sq(n){ var nos = (n + '').split(''); var res=""; for(i in nos){ res+= parseInt(nos[i]) * parseInt(nos[i]); } return parseInt(res); } var result = sq(21); alert(result) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM