元ネタ
FizzBuzz(n)
— TokusiN (@toku51n) 2019年1月21日
を、1以上n以下の数を順番に表示する。ただし、3の倍数の場合はFizzを、5の倍数の場合はBuzzを、15の倍数の場合はFizzBuzz(その数-1)を代わりに表示する関数とするとき、
FizzBuzz(100)を表示するプログラムを作りなさい。
Swift
fbp.playground
func fizzBuzz(num: Int) {
guard 1 <= num else {
fatalError("num must be larger than 1")
}
for i in 1...num {
switch i {
case i where i % 15 == 0 :
fizzBuzz(num: i - 1)
case i where i % 3 == 0 :
print("Fizz")
case i where i % 5 == 0 :
print("Buzz")
default:
print(String(i))
}
}
}
fizzBuzz(num: 100)
Kotlin
fbp.kt
import java.lang.Exception
fun Int.fizzBuzz() {
if (this <= 1) {
throw Exception("this must be larger than 1")
}
for (i in 1..this) {
when {
i % 15 == 0 -> (i - 1).fizzBuzz()
i % 3 == 0 -> println("Fizz")
i % 5 == 0 -> println("Buzz")
else -> println(i.toString())
}
}
}
fun main() {
100.fizzBuzz()
}