本サイトABC083B – Some Sumsへは以下から
問題:Some Sums
1 以上 N 以下の整数のうち、10 進法での各桁の和が A 以上 B 以下であるものの総和を求めてください。
- 1≤N≤104
- 1≤A≤B≤36
- 入力はすべて整数である
入力
入力は以下の形式で標準入力から与えられる。
N A B
出力
1 以上 N 以下の整数のうち、10 進法での各桁の和が A 以上 B 以下であるものの総和を出力せよ。
入力例 1
20 2 5
出力例 1
84
20 以下の整数のうち、各桁の和が 2 以上 5 以下なのは 2,3,4,5,11,12,13,14,20 です。これらの合計である 84 を出力します。
入力例2
10 1 2
出力例2
13
入力例3
100 4 16
出力例3
4554
解答例
N, A, B = map(int, input().split())
total = 0
for i in range(1, N+1):
digit_sum = sum(map(int, str(i)))
if A <= digit_sum <= B:
total += i
print(total)
解説
この問題は、与えられた範囲内の整数の中で、各桁の和が特定の範囲内にあるものの総和を計算するものです。
以下は、この問題を解くためのPythonのプログラムの手順です。
- 入力の受け取り:
N, A, B = map(int, input().split())
を使用して、整数N
、A
、B
を受け取ります。
- 初期化:
total
を0に初期化します。これは、条件を満たす整数の総和を計算するための変数です。
- 各桁の和の計算:
for
ループを使用して、1からN
までの各整数に対して以下の操作を行います:- その整数の各桁の和を計算します。
- その和が
A
以上B
以下であるかどうかを確認します。 - 条件を満たす場合、その整数を
total
に加算します。
- 結果の出力:
print(total)
を使用して、条件を満たす整数の総和を出力します。
以下は、この問題を解くためのPython3のプログラムです。
# 入力の受け取り
N, A, B = map(int, input().split())
# 初期化
total = 0
# 各桁の和の計算
for i in range(1, N+1):
# 各桁の和を計算
digit_sum = sum(map(int, str(i)))
# 和がA以上B以下であるか確認
if A <= digit_sum <= B:
total += i
# 結果の出力
print(total)
digit_sum = sum(map(int, str(i)))
について詳しく解説します。このコードは、整数i
の各桁の和を計算するためのものです。この行を詳しく分解して説明します。
str(i)
:- この部分は、整数
i
を文字列に変換します。例えば、i
が123の場合、str(i)
は"123"
という文字列を返します。
- この部分は、整数
map(int, str(i))
:map
関数は、第二引数の各要素に第一引数の関数を適用します。この場合、str(i)
の各文字(各桁)にint
関数を適用して、それを整数に変換します。- 例えば、
i
が123の場合、map(int, str(i))
は整数1, 2, 3を生成します。
sum(...)
:sum
関数は、引数として与えられたイテラブル(この場合はmap
オブジェクト)のすべての要素の和を計算します。- 例えば、
i
が123の場合、sum(map(int, str(i)))
は1 + 2 + 3 = 6を計算します。
【python】input関数の使い方
python公式ドキュメントはこちら Pythonで用意されている組み込み関数の input 関数の使い方です。キーボードから入力した文字や数値を受け取る際に使用します。 input …
【python】range関数の使い方
python公式ドキュメントはこちら Pythonで連続する整数の列や、指定した初期値/最終値/差分で計算される等差数列を得るにはrange関数を使用します。 range関数の書式 ra…
【python】map関数の使い方
python公式ドキュメントはこちら Pythonで用意されている組み込み関数の map 関数の使い方です。第二引数に設定したリストなどのイテラブルオブジェクトを、第一引数に…
【python】if文の使い方
python公式ドキュメントはこちら if 文は条件分岐をおこなうための文法です。Pythonのif文は、一般的な他のプログラミング言語と同様に、条件式の結果が真(true)である…
【python】print関数の使い方
python公式ドキュメントはこちら Pythonで用意されている組み込み関数の中の print 関数の使い方です。引数に指定した文字列や数値、変数に格納された値などを標準出力…
次の問題へ
AtCoder Beginners Selection ABC088B – Card Game for Twoをpythonで解いてみた
本サイトABC088B – Card Game for Twoへは以下から 問題:Card Game for Two N 枚のカードがあります. i 枚目のカードには, aiという数が書かれて…
前の問題へ
AtCoder Beginners Selection ABC087B – Coinsをpythonで解いてみた
本サイトABC087B – Coinsへは以下から 問題:Coins あなたは、500円玉を A 枚、100 円玉を B 枚、50 円玉を C 枚持ってい…
一覧へ
AtCoder Beginners Selection 11問をpythonで解いてみた
AtCoderの初心者向け問題集である AtCoder Beginners Selection の11問をPythonで解説します。 AtCoder Beginners Selection Welcome to AtCoder a = int(input()) b, c…
コメント