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

JavaScriptで数値の各桁の合計が回文数かどうかを判定する方法

本記事では、数値を受け取り、その各桁の合計を計算し、その合計が回文数(パリンドローム)であるかどうかを判定するJavaScript関数の作成方法を解説します。合計が回文数であればtrue、そうでなければfalseを返す仕様です。

問題の概要

例として、数値が697の場合を考えてみましょう。

各桁の合計は「6 + 9 + 7 = 22」となり、22は回文数です。したがって、この関数は697に対してtrueを返す必要があります。

コード例

以下が実際のコードです。

const num = 697;
const sumDigit = (num, sum = 0) => {
    if(num){
        return sumDigit(Math.floor(num / 10), sum + (num % 10));
    };
    return sum;
};
const isPalindrome = num => {
    const revered = +String(num)
    .split("")
    .reverse()
    .join("");
    return revered === num;
};
const isSumPalindrome = num => isPalindrome(sumDigit(num));
console.log(isSumPalindrome(num));

コードの解説

このコードは主に3つの関数で構成されています。

sumDigit関数: 再帰処理を用いて各桁の合計を求めます。num % 10で最後の桁を取り出して合計に加え、Math.floor(num / 10)で桁を一つずらしながら再帰的に呼び出します。numが0になった時点で合計値を返します。

isPalindrome関数: 数値を文字列に変換し、split()reverse()join()を組み合わせて文字列を反転させます。反転後の数値と元の数値が一致すれば回文数であると判断します。

isSumPalindrome関数: 上記2つの関数を組み合わせ、「桁の合計を求める」→「それが回文数か判定する」という流れを一つの関数にまとめています。

出力結果

上記のコードを実行すると、コンソールには以下の出力が表示されます。

true
  1. JavaScriptで数値が三角数かどうかを判定する方法

    三角数(Triangular Number)とは? 三角数とは、点を正三角形の形に敷き詰めたときに現れる数のことです。n番目の三角数は「1からnまでの自然数の合計」として表され、次の公式で求められます。 Tn = n(n+1) / 2 具体的な三角数は 1, 3, 6, 10, 15, 21, 28 … と続きます。例えば 10 は、各辺に4個の点を配置した正三角形を構成できるため、三角数です。 問題 数値を引数として受け取り、その数値が三角数であれば true を、そうでなければ false を返すJavaScript関数を実装します。 判定の考え方 n(n+1)/2 = num となる正

  2. 数値が回文数(パリンドローム)かどうかを判定するC++プログラム

    回文数(パリンドローム)とは、桁の並びを逆に読んでも元の値と変わらない数のことです。その対称的な性質から「対称数」と呼ばれることもあります。例えば、12321、1551、11 などの数は、桁を逆順に並べ替えても値が変化しないため、回文数です。本記事では、与えられた数値が回文数であるかどうかを判定するC++プログラムを紹介し、その仕組みを詳しく解説します。プログラム例#include<iostream> using namespace std; void palindrome(int num) { int rev=0,val; val = num; while