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

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

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

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

Q&A

解決済

1回答

356閲覧

[Python3]AtCoderの問題・数字がs桁表示していないのに0で始まる表示をする

Egoil

総合スコア18

Python 3.x

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

0グッド

0クリップ

投稿2019/05/09 07:15

編集2019/05/09 07:16

AtCoderの
https://atcoder.jp/contests/abc092/tasks/abc092_b
この問題で、

Python3

1n = int(input()) 2d,x = list(map(int, input().split())) 3a = [int(input(i)) for i in range(n)] 4for i in range(n): 5 x += (d // a[i] + (d % a[i] != 0)) 6print(x)

このような回答をしたのですが、コードテストで確認して見ると

3 7 1 2 5 10

の入力に対し、
0128 の出力が表示されてしまいます。

Python3

1n = int(input()) 2d,x = list(map(int, input().split())) 3for i in range(n): 4 a = int(input()) 5 x += d // a + (d % a != 0) 6 7print(x)

このように書き直して見たところきちんと動いたのですが、上で0128と出力される理由がわからず困っています。原因がわかる方がいれば何故なのか教えてくださいませんか。

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

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

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

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

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

guest

回答1

0

ベストアンサー

python3

1a = [int(input(i)) for i in range(n)] 2

inputの仕様を読んでください。

input([prompt])
引数 prompt が存在すれば、それが末尾の改行を除いて標準出力に書き出されます。

組み込み関数 — Python 3.7.3 ドキュメント

この場合、引数を与えてはいけないのです。range(3)で吐かれた0, 1, 2が標準出力に出てくることでしょう。

というかなぜ与えた。

python3

1a = [int(input()) for i in range(n)]

このようにすれば問題なく動きます。

投稿2019/05/09 07:21

編集2019/05/09 07:23
hayataka2049

総合スコア30933

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

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

Egoil

2019/05/09 14:35

ほんとだ…ありがとうございます。気をつけます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問