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

PHPで数値の各桁の合計を求めるプログラム


数値の各桁の合計を求めたい場合、PHPでは数値を文字列として扱うことで簡単に実装できます。以下に具体的なコード例を示します。

サンプルコード

<?php
    function sum_of_digits($my_num){
        $sum = 0;
        for ($i = 0; $i < strlen($my_num); $i++){
            $sum += $my_num[$i];
        }
        return $sum;
    }
    $my_num = "65";
    print_r("The sum of digits is ");
    echo sum_of_digits($my_num);
?>

出力結果

The sum of digits is 11

コードの解説

上記のコードでは、まず「sum_of_digits」という名前の関数を定義し、数値を引数として受け取るようにしています。

関数内部では、最初に変数 $sum を 0 で初期化します。次に strlen() 関数で数値の長さ(桁数)を取得し、for ループによって先頭の桁から順番に処理を進めます。PHPでは文字列に対して配列のようにインデックスでアクセスできるため、$my_num[$i] と書くことで i 番目の1桁を取り出し、$sum に加算することが可能です。

すべての桁の処理が完了したら、return 文で合計値を返します。関数の外部では、対象となる数値を変数 $my_num に代入し、その値を引数として関数を呼び出すことで結果を出力しています。

より簡潔な書き方

PHP 5 以降では、str_split() と array_sum() を組み合わせることで、同じ処理を1行で実現することもできます。

$sum = array_sum(str_split($my_num));

この方法はコードが短く可読性も高いため、単純なケースではこちらを採用するのも有効な選択肢です。

  1. Pythonで数Nの桁数を数えるプログラムの書き方

    ある数Nが与えられたとき、その数に含まれる桁の総数を求めることを考えましょう。例えば以下のようなケースです。入力例1:N = 891452出力:6解説: 与えられた数891452は6桁の数字で構成されているため、この場合は「6」を返します。入力例2:N = 0074515出力:5解説: 先頭の0を除いた有効な桁数が5桁であるため、出力は「5」となります。この問題を解くためのアプローチこの問題は、次の手順で解決できます。数値nを入力として受け取ります。関数countDigits(n)が入力nを受け取り、桁数をカウントして返します。数値の各桁に対してループ処理を行い、カウンター変数を1ずつ増加させ

  2. Pythonで数値の各桁の合計を求める方法(文字列を使わない実装)

    ある数値 num が与えられたとき、その各桁の数字をすべて足し合わせた合計を求めます。ここでは、文字列に変換せず、数値演算だけで解く方法を紹介します。たとえば、入力が num = 512 の場合、5 + 1 + 2 = 8 となるため、出力は 8 になります。解き方の手順合計を格納する変数 sum を 0 で初期化します。num が 0 になるまで、次の処理を繰り返します。sum に「num を 10 で割った余り」(最下位の桁)を加算します。num を「10 で割った商」(整数)で更新します。繰り返しが終わったら sum を返します。アルゴリズムのポイントこの手法では、「10 で割った余り」