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

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

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

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

Q&A

解決済

2回答

1866閲覧

不正解になる理由が分からない

ayataka_emg

総合スコア1

Python

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

0グッド

0クリップ

投稿2021/07/07 12:07

前提・実現したいこと

Atcoderを行っており、 AtCoder Beginners SelectionのSome Sumsのソースコードを書いています。すべてACにするにはどこを改善したほうがよいでしょうか。
問題:1以上 N以下の整数のうち、10進法での各桁の和が A以上 B以下であるものの総和を求めてください。

発生している問題・エラーメッセージ

一部AC、一部WAとなり、一部のテストケースで不正解となります。Atcoderはテストケースの入力を見ることができないため、どのような入力で不正解になっているかわかりません。

エラーメッセージ

該当のソースコード

python

1n,a,b = list(map(int,input().split())) 2sum_1 = 0 3ans = 0 4for i in range(1,n+1): 5 num = i 6 length = len(str(i)) 7 for length in range(length-1,-1,-1): 8 if i < 10: 9 sum_1 += i 10 else: 11 sum_1 += i//10**length 12 if length == 0: 13 i = i%10 14 else: 15 i = i%10**length 16 if sum_1 >= a and b >= sum_1: 17 ans += num 18 sum_1 = 0 19print(ans)

試したこと

入力
30 3 5
出力
147

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答2

0

ベストアンサー

n,a,b = list(map(int,input().split())) ans = 0 for i in range(1,n+1): num = i ints = [int(i) for i in str(num)] sum_1 = sum(ints) if sum_1 >= a and b >= sum_1: ans += num print(ans)

こちらのように、単純に格桁の和を求めて比較して総和をとるコードの方がわかりやすいように思います。

投稿2021/07/07 16:09

編集2021/07/07 16:09
nnkkmto

総合スコア175

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

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

ayataka_emg

2021/07/09 16:46

ありがとうございます!
guest

0

例えば、num が 103 の場合、各桁の合計は4ですが、提示されたプログラムでは sum_1 が 7 になるため、A=3 B=5 の場合正しい結果になりません。

投稿2021/07/07 12:27

編集2021/07/07 12:28
hiro-k

総合スコア902

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

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

ayataka_emg

2021/07/09 16:45

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問