Menu
Coddy logo textTech

Aggiungere la variante

Fa parte della sezione Fondamenti del percorso Swift di Coddy. Lezione 61 di 86.

challenge icon

Sfida

Facile

Nella lezione precedente, hai creato un ciclo che esegue FizzBuzz da 1 fino a un limite specificato usando i divisori fissi 3 e 5. Ora aggiungi una variante rendendo personalizzabili i divisori!

Modifica la tua funzione fizzBuzz per accettare due parametri aggiuntivi per i divisori personalizzati:

  • Aggiorna la firma della funzione a: fizzBuzz(_ number: Int, fizzAt: Int = 3, buzzAt: Int = 5) -> String
  • Usa fizzAt invece di 3 per il controllo di "Fizz"
  • Usa buzzAt invece di 5 per il controllo di "Buzz"
  • I valori predefiniti assicurano che il FizzBuzz classico funzioni comunque quando i divisori non sono specificati

Riceverai i seguenti input:

  1. Il limite superiore (intero)
  2. Il primo divisore per "Fizz" (intero)
  3. Il secondo divisore per "Buzz" (intero)

Aggiorna il ciclo in modo che passi questi divisori personalizzati alla funzione per ogni numero.

Ad esempio, se gli input sono 10, 2 e 3, l'output dovrebbe essere:

1
Fizz
Buzz
Fizz
5
FizzBuzz
7
Fizz
Buzz
Fizz

In questo esempio, "Fizz" viene stampato per i multipli di 2, "Buzz" per i multipli di 3 e "FizzBuzz" per i multipli di entrambi (come 6).

Se gli input sono 15, 3 e 5 (i divisori classici), l'output dovrebbe corrispondere al FizzBuzz originale:

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

Provalo tu

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

Tutte le lezioni di Fondamenti

Esercitati da solo: Playground Swift