再帰を使わずに数値の各桁の合計を求めるPythonプログラム
プログラミングにおいて、数値の各桁の合計を求める処理は頻出する課題の一つです。再帰呼び出しを使わずにこの問題を解決したい場合、「%」演算子(剰余)、「+」演算子(加算)、そして「//」演算子(整数除算)を組み合わせることで、シンプルかつ効率的に実装できます。
実装のポイント
基本的な考え方は以下の通りです。
- 「% 10」で最下位の桁(1の位)を取り出す
- 取り出した桁を合計値に加算する
- 「// 10」で数値を1桁ずらし、数値が0になるまで繰り返す
サンプルコード
def sum_of_digits(my_num):
sum_val = 0
while (my_num != 0):
sum_val = sum_val + (my_num % 10)
my_num = my_num//10
return sum_val
my_num = 12345671
print("The number is :")
print(my_num)
print("The method to calculate sum of digits is being called...")
print("The sum of " + str(my_num) + " is :")
print(sum_of_digits(my_num))
実行結果
The number is : 12345671 The method to calculate sum of digits is being called... The sum of 12345671 is : 29
コードの解説
- sum_of_digitsという名前の関数を定義し、数値を引数として受け取ります。
- 合計値を格納する変数sum_valを0で初期化します。
- whileループ内で、数値を10で割った余り(最下位の桁)を合計値に加算します。
- 続いて、数値を10で整数除算した結果を数値自身に再代入し、桁を1つずらします。
- 数値が0になった時点でループを抜け、合計値を戻り値として返します。
- サンプルとして数値12345671を定義し、コンソールに表示します。
- 定義した関数にこの数値を引数として渡して呼び出します。
- 計算結果である29(1+2+3+4+5+6+7+1)がコンソールに出力されます。
-
Pythonプログラムで数の偶数の約数の合計を求める方法
この記事では、以下の問題文に対する解決策について詳しく解説します。 問題文:ある数が与えられたとき、その数のすべての偶数の約数(因子)の合計を求めて表示します。 アプローチ まず、与えられた数が奇数であるかどうかを確認します。奇数には偶数の約数が存在しないため、その場合は 0 を返します。 数が偶数である場合は、実際の計算に進みます。ここでのポイントは、20(つまり1)以外のすべての項を掛け合わせることで、偶数の約数の合計が得られるという点です。 偶数の約数からすべての奇数を取り除くために、20 に相当する「1」を無視します。この処理を行うことで、残るのは偶数の約数のみとなります。なお、2 は
-
Pythonで配列(リスト)の合計を求める方法をわかりやすく解説
この記事では、配列(リスト)の合計値を求めるという問題に対して、Pythonでの解決策とアプローチをわかりやすく解説します。 問題の定義 配列が入力として与えられたとき、その配列に含まれるすべての要素の合計を計算することを目標とします。 例えば、[1, 2, 3, 4, 5] という配列が与えられた場合、出力は 15 になります。 アプローチ1:ループを使った素朴な方法(総当たり法) 最も基本的な方法は、リストを先頭から順に走査し、各要素を合計用の変数に加算していくやり方です。手順は以下の通りです。 合計を格納する変数を 0 で初期化します。 for ループでリストの各要素を取り出し、順番に