【C言語】forループで入力された数値の各桁の積を求める方法を解説
キーボードから数値を入力し、その数値を1桁ごとの数字に分解して、forループを使って各桁の数字の積を求めるプログラムを作成してみましょう。本記事では、その基本的な考え方から実際のコードまで、サンプルと実行結果つきでわかりやすく解説します。
各桁の積を求める基本ロジック
与えられた数値の各桁の数字の積を求めるための中心的なロジックは以下のとおりです。
for(product = 1; num > 0; num = num / 10){
rem = num % 10;
product = product * rem;
}
処理の流れを順番に見ていきましょう。
- 変数
productを1で初期化します。 num % 10(剰余演算)で、数値の最下位桁(1の位)を取り出します。- 取り出した桁の値を
productに掛け合わせます。 num / 10(整数除算)によって、数値の末尾の桁を1つ削ります。numが0になるまで、この一連の処理を繰り返します。
たとえば「269」であれば、9 × 6 × 2 = 108 が計算結果になります。
例1:forループを使ったCプログラム
次は、forループを使用して、入力された数値の各桁の積を求めるCプログラムの完全なコードです。
#include <stdio.h>
int main(){
int num, rem, product;
printf("enter the number : ");
scanf("%d", &num);
for(product = 1; num > 0; num = num / 10){
rem = num % 10;
product = product * rem;
}
printf(" result = %d", product);
return 0;
}
実行結果
上記のプログラムをコンパイルして実行すると、以下のような出力が得られます。
enter the number: 269 result = 108 enter the number: 12345 result = 120
「269」の場合は 2×6×9=108、「12345」の場合は 1×2×3×4×5=120 となり、各桁の積が正しく計算できていることが確認できます。
実装時の注意点
productの初期値を0ではなく1にするのがポイントです。掛け算では 0 を掛けると必ず結果が 0 になってしまうため、乗算の単位元である 1 を使います。- 入力が
0の場合、ループ本体は一度も実行されず、結果は1が出力されます。仕様上問題になる場合は、0 のときの専用処理を追加してください。
例2:whileループを使った別の解法
同じ処理は、whileループを使っても実装できます。比較のために、whileループで各桁の積を求めるプログラムを紹介します。
#include <stdio.h>
int main(){
int num, rem, product=1;
printf("enter the number : ");
scanf("%d", &num);
while(num != 0){
rem = num % 10;
product = product * rem;
num = num /10;
}
printf(" result = %d", product);
return 0;
}
実行結果
上記のプログラムを実行すると、以下のような出力が得られます。
enter the number: 257 result = 70 enter the number: 89 result = 72
「257」なら 2×5×7=70、「89」なら 8×9=72 となり、forループ版とまったく同じ結果が得られます。
まとめ
数値の各桁の積を求める鍵となるのは、剰余演算子「%」で末尾の桁を取り出し、整数除算「/」で桁を1つずつずらしていくという組み合わせです。forループとwhileループのどちらでも同じロジックで実装できるので、可読性やコーディング規約に応じて使い分けるとよいでしょう。
-
Pythonで整数の桁数を求める方法をわかりやすく解説
この記事では、ユーザーから入力された整数の桁数を求めるPythonプログラムを紹介します。初心者にもわかりやすいように、アルゴリズムの考え方からサンプルコード、実行結果まで順を追って解説していきます。 実行例 入力:123 → 出力:3入力:1987 → 出力:4 アルゴリズム 桁数を求める基本的な流れは以下の通りです。 ユーザーから整数値を入力として受け取ります。 数値を10で割り、その商を整数型(int)に変換します。 商が0でなければ、桁数のカウントを1つ増やします。 商が0になった時点でカウントを終了します。 処理を終了し、桁数を出力します。 サンプルコード x = int(
-
Windows 10 / 11のプロダクトキーを確認する4つの方法【メール・コマンド・レジストリ】
25文字のコードで構成されるWindowsのプロダクトキー(ソフトウェアキーとも呼ばれます)は、OSの認証に必要な確認コードです。プロダクトキーの使用は、利用している製品が正規品であることを保証する基本的な仕組みとなっています。「プロダクトキーが見つからない…」とお困りの方もご安心ください。この記事では、Windowsのプロダクトキーを調べるさまざまな方法をわかりやすく解説します。 方法1:メールを確認する ほとんどの場合、Windows 10またはWindows 11のプロダクトキーは、メールボックスの中で見つけることができます。ここでいうメールボックスとは、Windowsのライセンスを購入