プログラミングで2つの整数を入力し、その範囲内の整数の合計を求める問題について解説します。特に、入力された整数がどちらが小さいかによって順序を入れ替え、正しい合計を算出する方法に焦点を当てます。
1. 問題の概要と解法のアプローチ
この問題では、2つの正の整数(m, n)が与えられ、その範囲内の整数を合計するプログラムを作成します。問題にある通り、もしnがmより小さい場合は、nとmを入れ替えて計算を行います。
合計を求めるためには、まずnとmの大小関係を確認し、次に指定された範囲内の整数を一つ一つ足し算していく必要があります。
2. Pythonによる解法例
Pythonでこの問題を解決する方法を以下に示します。
def sum_range(m, n):
# nとmの大小を比較して、nがmより大きい場合は入れ替える
if n > m:
m, n = n, m
# mからnまでの範囲の合計を計算
total = sum(range(n, m + 1))
return total
# 使用例
m = 5
n = 10
print(f'{n}から{m}までの合計は: {sum_range(m, n)}')
上記のコードでは、まず与えられた整数nとmを比較し、必要に応じて順番を入れ替えています。次に、range関数を使ってnからmまでの範囲を作り、sum関数でその合計を計算しています。
3. コードの解説
コードのポイントは、if n > mという条件で、もしnがmより大きい場合にm, n = n, mというコードを使って、nとmを入れ替えているところです。これにより、どちらの順番で入力されても正しく合計が求められるようになります。
その後、range(n, m + 1)を使って、nからmまでの整数のリストを作り、sum関数でその合計を算出しています。Pythonではこのようにシンプルに合計を求めることができます。
4. 出力例と実行結果
例えば、m=5, n=10の場合、このプログラムを実行すると、範囲10から5までの整数の合計が表示されます。出力は以下の通りです。
10から5までの合計は: 45
このように、入力された整数の大小に関わらず、正しい範囲の合計が計算されることが確認できます。
5. まとめ
プログラムで指定された範囲内の整数を合計する方法を、Pythonのrangeとsum関数を使って簡単に実現できることがわかりました。また、nとmの順序が逆の場合にも対応できるように、条件分岐を用いて順番を入れ替える処理を加えることが大切です。この方法を応用することで、さらに複雑な範囲の計算や処理にも対応できるようになります。


コメント