0

数字の桁を二乗するにはどうすればよいですか? 例えば:

square(21){};

代わり41441

4

6 に答える 6

2

これは簡単な計算で簡単にできます。文字列処理のオーバーヘッドは必要ありません。

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 で割り、小数点以下を切り捨てて再割り当てすることにより、元の数値を減らします。

最後に、配列を反転して結果の文字列に結合します (必要に応じて数値に変換できます)。

于 2015-06-16T16:34:21.920 に答える
0

これが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);
于 2015-06-16T16:33:07.757 に答える
0

彼は次のような意味だと思います。

    var output = "";
    for(int i = 0; i<num.length; i++)
    {
        output.concat(Math.pow(num[i],2).toString());
    }
于 2015-06-16T16:32:33.520 に答える
0

文字列を配列に分割しmap、要素の 2 乗の a を返し、結果の配列を文字列に再結合します。

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

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

デモ

于 2015-06-16T16:39:56.520 に答える
-1

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)

于 2015-06-16T16:38:49.823 に答える
-1

数値を桁の値に分割し、それらを 2 乗してから連結し直します。これが私がそれを行う方法です:

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を使用して、次のように数値を 2 乗します。

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

于 2015-06-16T16:25:14.183 に答える