JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで負の整数の各桁の合計を求める方法

本記事では、負の整数を受け取り、その各桁の合計を返すJavaScript関数の作成方法を解説します。

問題の概要

負の整数を引数として受け取り、各桁の値から合計を算出して返す関数を実装します。ここでは、マイナス記号の直後にある最初の桁を負の値として扱い、残りの桁を正の値として加算するアプローチを紹介します。

例えば、次の数値が入力された場合を考えてみましょう。

-5456

出力

この場合、期待される出力は次のとおりです。

-5+4+5+6
10

実装コード

この問題を解くためのコードは以下のとおりです。

const num = -5456;
const sumNum = num => {
    return String(num).split("").reduce((acc, val, ind) => {
        if(ind === 0){
            return acc;
        }
        if(ind === 1){
            acc -= +val;
            return acc;
        }
        acc += +val;
        return acc;
    }, 0);
};
console.log(sumNum(num));

コードの解説

処理の流れを順に見ていきましょう。

  • 文字列への変換と分割: String(num) で数値を文字列 "-5456" に変換し、split("") で1文字ずつ配列に分割します。結果は ["-", "5", "4", "5", "6"] となります。
  • reduce()による累積計算: reduce() メソッドで配列の各要素を順に処理し、初期値 0 から合計を求めます。
  • インデックス0(マイナス記号): 先頭の "-" は数値として扱えないため、処理をスキップします。
  • インデックス1(最初の桁): 負の数の符号を反映させるため、acc -= +val で最初の桁を減算します。
  • インデックス2以降(残りの桁): acc += +val で各桁を加算していきます。

出力結果

コンソールには次の出力が表示されます。

10

つまり、入力が -5456 の場合は「-(5) + 4 + 5 + 6」という計算が行われ、結果として 10 が返されます。

  1. JavaScriptで数値が2つの平方数の和として表せるか判定する方法

    平方数(完全平方数)とは?数学において、ある自然数が別の自然数とそれ自身との積で表されるとき、その数を平方数(完全平方数)と呼びます。例えば、9、16、81、289 はすべて平方数です。9 = 3 × 316 = 4 × 481 = 9 × 9289 = 17 × 17問題の定義自然数 num を引数として受け取るJavaScript関数を作成します。この関数は、次の条件を満たす2つの数 m と n が存在するかどうかを判定する必要があります。(m * m) + (n * n) = numそのような数の組み合わせが存在すれば true を、存在しなければ false を返します。例入力が以下の

  2. JavaScriptで有理数を「分子が1の分数」の和に分解するアルゴリズム

    問題概要今回は、JavaScriptで有理数を「分子がすべて1である分数」の和に分解する関数を作成する課題です。入力には、有理数を表す文字列(例:2/3)を使用します。このような分解はエジプト分数と呼ばれ、古代エジプトで実際に使われていた記法に由来する有名な数学的テーマです。関数が満たすべき条件は以下の通りです。返り値は、各要素が「1/分母」の形式を持つ部分配列からなる配列であること部分配列が表す分数をすべて加算すると、入力された有理数と一致すること使用する分数の個数はできるだけ少なくすること解き方:貪欲法(グリーディーアルゴリズム)この種の問題に対する標準的なアプローチは貪欲法です。手順はシ