pontz_rwのブログ

プログラミング等の備忘録

ITP1_5_D: Structured Programming

構造化プログラミング | プログラミング入門 | Aizu Online Judge
プログラムを書き直す問題


3の倍数であるか、剰余が3か0になるまで10で割り続け、3である場合に、その数字を出力します。


解答1
*演算子を使用し、リストやタプルから引数をアンパックします。

n = int(input())
list = []
for i in range(3, n + 1):
    if i % 3 == 0:
        list.append(i)
    else:
        x = i
        while x:
            if x % 10 == 3:
                list.append(i)
                break
            else:
                x = x // 10
print("", *list)


解答2
剰余を求めていた処理を、文字列に3を含むかという処理に変更しています。

n = int(input())
for i in range(3, n + 1):
    if i % 3 == 0 or '3' in str(i):
        print('', i, end='')
print()