C++で数値の各桁の合計を計算するプログラム
ここでは、C++言語を使用して入力された整数の各桁の合計を計算する方法を紹介します。剰余演算子と整数除算を組み合わせたシンプルなアルゴリズムで実装できます。
プログラム例
#include<iostream>
using namespace std;
int main() {
int x, s = 0;
cout << "Enter the number : ";
cin >> x;
while (x != 0) {
s = s + x % 10;
x = x / 10;
}
cout << "\nThe sum of the digits : "<< s;
}
出力結果
Enter the number : 236214828 The sum of the digits : 36
プログラムの解説
上記のプログラムでは、まず2つの変数 x と s を宣言し、s を 0 で初期化しています。ユーザーから数値を入力した後、whileループによって数値が 0 になるまで各桁の合計を求める処理を繰り返します。
コアとなる処理部分
while (x != 0) {
s = s + x % 10;
x = x / 10;
}
処理の流れ
- x % 10: 剰余演算により数値の最下位桁(1の位)を取り出し、変数 s に加算します。
- x / 10: 整数除算により数値を1桁ずつ右へシフトし、処理済みの最下位桁を取り除きます。
- 終了条件: すべての桁を処理すると x は 0 になり、ループが終了します。
この仕組みにより、どれだけ桁数が多い数値でも、各桁の合計を確実に計算することができます。例として入力した「236214828」の場合、2+3+6+2+1+4+8+2+8 = 36 が出力されます。
-
Pythonで数Nの桁数を数えるプログラムの書き方
ある数Nが与えられたとき、その数に含まれる桁の総数を求めることを考えましょう。例えば以下のようなケースです。入力例1:N = 891452出力:6解説: 与えられた数891452は6桁の数字で構成されているため、この場合は「6」を返します。入力例2:N = 0074515出力:5解説: 先頭の0を除いた有効な桁数が5桁であるため、出力は「5」となります。この問題を解くためのアプローチこの問題は、次の手順で解決できます。数値nを入力として受け取ります。関数countDigits(n)が入力nを受け取り、桁数をカウントして返します。数値の各桁に対してループ処理を行い、カウンター変数を1ずつ増加させ
-
Pythonで数値の各桁の合計を求める方法(文字列を使わない実装)
ある数値 num が与えられたとき、その各桁の数字をすべて足し合わせた合計を求めます。ここでは、文字列に変換せず、数値演算だけで解く方法を紹介します。たとえば、入力が num = 512 の場合、5 + 1 + 2 = 8 となるため、出力は 8 になります。解き方の手順合計を格納する変数 sum を 0 で初期化します。num が 0 になるまで、次の処理を繰り返します。sum に「num を 10 で割った余り」(最下位の桁)を加算します。num を「10 で割った商」(整数)で更新します。繰り返しが終わったら sum を返します。アルゴリズムのポイントこの手法では、「10 で割った余り」