片手


白駿1065号

問題の説明


正の整数Xの各位置が等差数列である場合、その数を1つの数と呼ぶ.等差数列とは、連続する2つの数の差が一定の数列を指す.Nが与えられた場合、プログラムを作成し、1以上、N以下の数値を出力します.

に答える


入力した数に応じて、繰り返し文を回して、もう一つの数を加えます.
1~99までは3桁未満なので、必ず1桁を使うので、必ず+1.
次に、数字を文字列に分割し、各桁数の違いが同じかどうかを判断します.
nの入力値は1000なので、2番目の位置をチェックするだけです.
それに加算された値をプリントアウトすればいいです.

コミットコード

n = int(input())

def hansu(num):
    cnt = 0
    for i in range(1, num+1):
        if i < 100:
            cnt += 1
        else:
            nums = list(map(int,str(i)))
            if nums[0] - nums[1] == nums[1] - nums[2]:
                cnt += 1

    return cnt

print(hansu(n))