AtCoder ABC 162 B – FizzBuzz Sum Python解説

スポンサーリンク

FizzBuzz Sum

FizzBuzz列 a1​,a2​,… を次のように定めます。

i が 3 でも 5 でも割り切れるなら、ai​=FizzBuzz
そうではなく i が 3 で割り切れるなら、ai​=Fizz
そうではなく i が 5 で割り切れるなら、ai​=Buzz
そうではないなら、ai​=i

FizzBuzz列の N 項目までに含まれる数の和を求めてください。

AtCoder Beginner Contest 「FizzBuzz Sum」

今回の問題は有名なFizzBuzz問題を使った問題です。求められているのはFizzBuzz、Fizz、Buzzの出力ではなく、それら以外の数の和を求めることなので注意しましょう。

では通常のFizzBuzz問題のような解き方でコードを書いてみます。

n = int(input())

ans = 0

for i in range(n + 1):
    if i % 3 == 0 and i % 5 == 0:
        pass
    elif i % 5 == 0:
        pass
    elif i % 3 == 0:
        pass
    else:
        ans += i
        
print(ans)

今回FizzBuzzなどの出力は必要ないので、条件に合ったときはpassをしています。そして、3でも5でも割り切れないときは変数ansに加えていき、最後にansを出力して完了です。