考えて競プロする

プログラミングコンテストの問題をどう考えて解いたかを記録していくブログです。使用言語はPython3

ABC100-B - Ringo's Favorite Numbers を解く(1)

ABC100-B - Ringo's Favorite Numbers

 

100 で D 回割り切れる正の整数のうち、N番目に小さいものを求める問題

いくつか例を見てみよう

 

まずは入出力例1の D=0 , N=5 の場合

100 で 0 回割り切れる、つまり 1 回も割り切れない正の整数は

1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , …

と 1 から順番に + 1 していった整数となるので 5番目に小さい 5 が答えである

 

次に入出力例2の D=1 , N=11 の場合

100 で 1 回割り切れる数は

100 , 200 , 300 , … と続くので 11番目にくる 1100 が答えとなる

 

最後に入出力例3の D=2 , N=85 の場合

100 で 2 回割り切れる数、つまり 10000 で割り切れる数は

10000 , 20000 , 30000 , … と続くので 85番目にくる 850000 が答えとなる

 

以上、3パターンを見ることで大体傾向は掴めた

まず、D=0 の場合は N の値そのままが

D=1 の場合は N に 100 を掛けた値

D=2 の場合は  N に 10000 を掛けた値が答えになると思われる

 

以上を踏まえて書いたコードを以下に示す

 

提出したコード

# 入力
D,N=map(int,input().split())

# D(=0,1,2)の値によって場合分け
if D==0:
  print(N)
elif D==1:
  print(N*100)
else:
  print(N*10000)

 

提出結果はWA

3つのテストケースが通らなかった… 何か考慮漏れがあるのか?

 

ABC100-B - Ringo's Favorite Numbers を解く(2) へ続く