Menu
Coddy logo textTech

「ひねり」を加える

CoddyのSwiftジャーニー「基礎」セクションの一部 — レッスン 61/86。

challenge icon

チャレンジ

簡単

前のレッスンでは、固定の除数3と5を使用して、1から指定された上限までFizzBuzzを実行するループを作成しました。今回は、除数をカスタマイズ可能にすることで、さらに工夫を加えてみましょう!

カスタム除数のための2つの追加パラメータを受け取るように、fizzBuzz関数を修正してください:

  • 関数のシグネチャを次のように更新します:fizzBuzz(_ number: Int, fizzAt: Int = 3, buzzAt: Int = 5) -> String
  • "Fizz"のチェックには、3の代わりにfizzAtを使用します
  • "Buzz"のチェックには、5の代わりにbuzzAtを使用します
  • デフォルト値により、除数が指定されていない場合でも従来のFizzBuzzが動作することが保証されます

以下の入力を受け取ります:

  1. 上限値(整数)
  2. "Fizz"のための最初の除数(整数)
  3. "Buzz"のための2番目の除数(整数)

各数値に対してこれらのカスタム除数を関数に渡すように、ループを更新してください。

例えば、入力が1023の場合、出力は以下のようになります:

1
Fizz
Buzz
Fizz
5
FizzBuzz
7
Fizz
Buzz
Fizz

この例では、2の倍数で"Fizz"、3の倍数で"Buzz"、そして両方の倍数(6など)で"FizzBuzz"が出力されます。

入力が1535(従来の除数)の場合、出力は元の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))
}

基礎のすべてのレッスン