質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

732閲覧

atcoder abc083_b Some Sums 解答コードで一部わかりません

AK15

総合スコア3

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/12/08 10:01

質問

atcoder abc083_b
Some Sums

atcoderの解答コードで一部わからない部分があるので教えていただきたいです。

問題のリンク先
https://atcoder.jp/contests/abc083/tasks/abc083_b

解答のコード

python

1n, a, b = map(int, input().split()) 2ans = 0 3for i in range(1, n+1): 4 lis_i = [int(x) for x in list(str(i))] 5 val = sum(lis_i) 6 if val >= a and val <=b: 7 ans += i 8print(ans)

わからない部分

python

1lis_i = [int(x) for x in list(str(i))]

なぜ、str(i)で文字型にする必要があるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

iに23456 などの数値を入れて、以下の式の値を見ればわかるのではないでしょうか。

python

1list(str(i))

投稿2022/12/08 10:29

TakaiY

総合スコア12666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AK15

2022/12/08 10:40

回答ありがとうございます! list(i) の場合で実行すると、 TypeError: 'int' object is not iterable というエラーが発生します。 これは、for で繰り返し可能なオブジェクト(iterable)ではないため、一旦、文字型に変換させて繰り返し可能なオブジェクト(iterable)にする必要がある、という認識で合ってますでしょうか?
TakaiY

2022/12/08 10:54

iterableでないからというより、この問題は、 数値の各桁の数を全て足したいわけですから、23456 を、 2, 3, 4, 5, 6 に分解する必要があるのです。数値から構成する数字は直接は取り出せませんが、いくつか方法があります。 - 10で割った余りを取っていく - 文字列にして文字列の性質を使う。 などです。 で、2番目の方法を採るとき、pythonでは文字列は文字リストとして扱える=iterable なので、質問のような方法でできるということです。
AK15

2022/12/08 11:07

大変理解しました!! 分解する方法として扱われていたのですね。 ご丁寧な回答ありがとうございます。
guest

0

i = 123の時
str(i) で"123"とした上でlist化すると["1","2","3"]とできるからではないでしょうか

投稿2022/12/08 10:27

red_snow

総合スコア19

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問