5桁の数値の各桁の合計を求めるC言語プログラム
5桁の整数 num があるとき、その各桁の合計を求める方法を解説します。基本的な考え方は、数値を右から左へ一桁ずつ取り出しながら足し合わせていくというものです。
アルゴリズムの考え方
各桁を取り出すには、次の手順を繰り返します。
- 数値を10で割った余りが、現在の一番右の桁(下一桁)になります。
- 数値を10で割った商(整数部分のみ)で数値を更新します。
- 数値が0になるまでこの処理を繰り返します。
取り出した桁をすべて合計すれば、それが求める「桁の合計」になります。
処理手順
num := 58612(対象の数値を設定)sum := 0(合計を格納する変数を初期化)numが0でない間、以下を繰り返す:sum := sum + (num を10で割った余り)num := num ÷ 10(整数部分のみ)
sumを返す
実行例
入力が num = 58612 の場合、出力は 22 になります。これは 5 + 8 + 6 + 1 + 2 = 22 となるためです。
C言語での実装例
以下に実際のC言語コードを示します。
#include <stdio.h>
int main(){
int num = 58612;
int sum = 0;
while(num != 0){
sum += num % 10;
num = num / 10;
}
printf("Digit sum: %d", sum);
}
入力
58612
出力
Digit sum: 22
ポイント解説
このプログラムの核となるのは、剰余演算子 % と整数除算 / の組み合わせです。num % 10 で下一桁を取得し、num / 10 でその桁を取り除きます。この手法は5桁に限らず、任意の桁数の整数に対しても同様に適用できるため、汎用的な桁操作の基本テクニックとして覚えておくと便利です。
-
C++で数の奇数の約数(奇因子)の合計を求めるプログラム
正の整数が与えられたとき、その数の奇数の約数(奇因子)をすべて求め、それらの合計を計算するのが本プログラムの目的です。 例 入力: number = 20 出力: 奇数の約数の合計は: 6 入力: number = 18 出力: 奇数の約数の合計は: 13 例えば number = 20 の場合、約数は 1, 2, 4, 5, 10, 20 ですが、このうち奇数は 1 と 5 のみです。したがって、結果 = 1 + 5 = 6 となります。 プログラムで使用するアプローチ 奇数の約数の合計を計算する対象の数を入力する 偶数の約数を除外するため、まず数を2で割り切れる限り2で割り続け、奇数の部
-
Pythonで数の因子の最小合計を求めるプログラム|素因数分解の考え方
本記事では、与えられた整数について、積が元の数と等しくなる因子の組み合わせの中から合計が最小となる値を求める方法を、Pythonのコード例とともに解説します。 問題定義 入力として1つの整数が与えられます。この数を複数の因子の積として表したとき、因子の合計が最小になるケースを求めてください。 すべての因子の組み合わせを網羅的に調べて合計を比較する方法もありますが、実はもっとシンプルで効率的なアプローチが存在します。 考え方:素因数の合計が最小になる 鍵となるのは次の性質です。積が一定の値になるとき、因子の合計が最小になるのは、すべての因子を素数まで分解した場合(素因数分解した場合)です。