Menu
Coddy logo textTech

Dodawanie niespodzianki

Część sekcji Podstawy ścieżki Swift w Coddy. Lekcja 61 z 86.

challenge icon

Wyzwanie

Łatwy

W poprzedniej lekcji utworzyłeś pętlę, która wykonuje FizzBuzz od 1 do podanego limitu, używając stałych dzielników 3 i 5. Teraz dodaj urozmaicenie, umożliwiając dostosowywanie dzielników!

Zmodyfikuj funkcję fizzBuzz, aby przyjmowała dwa dodatkowe parametry określające niestandardowe dzielniki:

  • Zaktualizuj sygnaturę funkcji do: fizzBuzz(_ number: Int, fizzAt: Int = 3, buzzAt: Int = 5) -> String
  • Użyj fizzAt zamiast 3 w sprawdzeniu dla "Fizz"
  • Użyj buzzAt zamiast 5 w sprawdzeniu dla "Buzz"
  • Wartości domyślne sprawiają, że klasyczny FizzBuzz nadal działa, gdy dzielniki nie zostaną określone

Otrzymasz następujące dane wejściowe:

  1. Górny limit (liczba całkowita)
  2. Pierwszy dzielnik dla "Fizz" (liczba całkowita)
  3. Drugi dzielnik dla "Buzz" (liczba całkowita)

Zaktualizuj pętlę tak, aby dla każdej liczby przekazywała te niestandardowe dzielniki do funkcji.

Na przykład, jeśli dane wejściowe to 10, 2 i 3, wynikiem powinno być:

1
Fizz
Buzz
Fizz
5
FizzBuzz
7
Fizz
Buzz
Fizz

W tym przykładzie "Fizz" jest wyświetlane dla wielokrotności 2, "Buzz" dla wielokrotności 3, a "FizzBuzz" dla wielokrotności obu tych liczb (na przykład 6).

Jeśli dane wejściowe to 15, 3 i 5 (klasyczne dzielniki), wynikiem powinien być taki sam wynik jak w oryginalnym FizzBuzz:

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz

Spróbuj swoich sił

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))
}

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online Swift