考えて競プロする

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

ABC136-B - Uneven Numbers を解く

ABC136-B - Uneven Numbers

 

N 以下の正の整数について、桁数が奇数になる数字の個数を数える問題

制約が 1 <= N <= 10^5 とそれほど大きくないので

1つ1つについて条件を満たすかどうかをチェックしてその個数を数えていけばいい

 

数字の桁数を取得する場合は

いったん文字列に変換して len 関数を使えばよい

 

>>> a
123
>>> b=str(a)
>>> b
'123'
>>> len(b)
3

 

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

 

提出したコード

# 入力
N=int(input())

# カウンタ
c=0

# 1〜Nまでの数字について条件を満たす場合をカウント
for i in range(1,N+1):
  # 桁数が奇数の場合
  if len(str(i))%2==1:
    c+=1

# 出力
print(c)

 

提出結果はACでした