「ひねり」を加える
CoddyのSwiftジャーニー「基礎」セクションの一部 — レッスン 61/86。
チャレンジ
簡単前のレッスンでは、固定の除数3と5を使用して、1から指定された上限までFizzBuzzを実行するループを作成しました。今回は、除数をカスタマイズ可能にすることで、さらに工夫を加えてみましょう!
カスタム除数のための2つの追加パラメータを受け取るように、fizzBuzz関数を修正してください:
- 関数のシグネチャを次のように更新します:
fizzBuzz(_ number: Int, fizzAt: Int = 3, buzzAt: Int = 5) -> String - "Fizz"のチェックには、3の代わりに
fizzAtを使用します - "Buzz"のチェックには、5の代わりに
buzzAtを使用します - デフォルト値により、除数が指定されていない場合でも従来のFizzBuzzが動作することが保証されます
以下の入力を受け取ります:
- 上限値(整数)
- "Fizz"のための最初の除数(整数)
- "Buzz"のための2番目の除数(整数)
各数値に対してこれらのカスタム除数を関数に渡すように、ループを更新してください。
例えば、入力が10、2、3の場合、出力は以下のようになります:
1
Fizz
Buzz
Fizz
5
FizzBuzz
7
Fizz
Buzz
Fizzこの例では、2の倍数で"Fizz"、3の倍数で"Buzz"、そして両方の倍数(6など)で"FizzBuzz"が出力されます。
入力が15、3、5(従来の除数)の場合、出力は元のFizzBuzzと一致する必要があります:
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz自分で試してみよう
func fizzBuzz(_ number: Int) -> String {
if number % 3 == 0 && number % 5 == 0 {
return "FizzBuzz"
} else if number % 3 == 0 {
return "Fizz"
} else if number % 5 == 0 {
return "Buzz"
} else {
return String(number)
}
}
// Read input
let limit = Int(readLine()!)!
// Loop from 1 to limit and print the result for each number
for number in 1...limit {
print(fizzBuzz(number))
}