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

JavaScriptで0からnまで数えるときに「9」が出現する回数を数える方法


問題

数値 n を引数として受け取るJavaScript関数を作成します。この関数は、0からnまで順番に数えていく過程で、数字の「9」が何回登場するかを数え、その合計回数を返す必要があります。

解決のアプローチ

この問題は、次の手順でシンプルに解決できます。

  • 0からnまでの各数値を文字列に変換する
  • 変換した文字列の中に「9」が何文字含まれているかを調べる
  • すべての数値分のカウントを合計して返す

文字列内の特定の文字を数えるには、split('') で1文字ずつ分解し、reduce() を使って一致する文字をカウントする方法が有効です。

コード例

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

const num = 100;
const countNine = (num = 0) => {
    const countChar = (str = '', char = '') => {
        return str
        .split('')
        .reduce((acc, val) => {
            if(val === char){
                acc++;
            };
            return acc;
        }, 0);
    };
    let count = 0;
    for(let i = 0; i <= num; i++){
        count += countChar(String(i), '9');
    };
    return count;
};
console.log(countNine(num));

コードの解説

  • countChar関数: 文字列を split('') で1文字ずつの配列に分割し、reduce() を使って指定された文字(ここでは「9」)と一致する回数を数えるヘルパー関数です。
  • countNine関数: 0からnumまでforループで繰り返し処理を行い、各数値を String(i) で文字列化して「9」の個数を累積していきます。

出力

上記のコードを実行すると、コンソールには次のように出力されます。

20

結果の解説

0から100まで数える場合、一の位に「9」が現れるのは 9, 19, 29, … , 99 の10回です。さらに十の位に「9」が現れるのは 90〜99 の10回です。これらを合計すると、ちょうど20回になります。

  1. JavaScriptのNumber()関数とは?使い方とサンプルコードを解説

    JavaScriptのNumber()関数は、引数として渡された値やオブジェクトを、それに対応する数値へ変換するための関数です。真偽値や文字列型の数字、さらにはDateオブジェクトなども数値に変換できるため、データ型の変換処理において非常に便利な組み込み関数の一つです。例えば、Number(true)は「1」、Number(false)は「0」を返します。また、数字のみで構成された文字列「149」を渡せば数値の149に変換され、new Date()で生成した日付オブジェクトを渡すと、1970年1月1日からの経過ミリ秒数が返されます。以下に、Number()関数の動作を確認できるサンプルコードを

  2. JavaScriptで数字パターンを表示する方法【初心者向けサンプルコード】

    本記事では、テキスト入力欄とボタンを備えたJavaScript・HTMLプログラムの作成方法を解説します。ユーザーが入力欄に任意の数値(例:5)を入力してボタンをクリックすると、画面に以下のような数字パターンが表示される仕組みです。(n = 5 の場合の出力例)01 01 02 01 02 03 01 02 03 04 01 02 03 04 05仕組みのポイントこのパターンは二重ループ(ネストしたforループ)を使うことで実現できます。外側のループが「行」を制御し、内側のループがその行に表示する「数字の個数」を制御します。i 行目には 1 から i までの数字が順番に出力されるため、行が進む