Menu
Coddy logo textTech

Añadiendo el giro

Parte de la sección Fundamentos del Journey de Swift de Coddy — lección 61 de 86.

challenge icon

Desafío

Fácil

En la lección anterior, creaste un bucle que ejecuta FizzBuzz del 1 a un límite dado utilizando los divisores fijos 3 y 5. Ahora, ¡añade un giro haciendo que los divisores sean personalizables!

Modifica tu función fizzBuzz para que acepte dos parámetros adicionales para los divisores personalizados:

  • Actualiza la firma de la función a: fizzBuzz(_ number: Int, fizzAt: Int = 3, buzzAt: Int = 5) -> String
  • Usa fizzAt en lugar de 3 para la comprobación de "Fizz"
  • Usa buzzAt en lugar de 5 para la comprobación de "Buzz"
  • Los valores por defecto aseguran que el FizzBuzz clásico siga funcionando cuando no se especifican los divisores

Recibirás las siguientes entradas:

  1. El límite superior (entero)
  2. El primer divisor para "Fizz" (entero)
  3. El segundo divisor para "Buzz" (entero)

Actualiza tu bucle para pasar estos divisores personalizados a la función para cada número.

Por ejemplo, si las entradas son 10, 2, y 3, la salida debería ser:

1
Fizz
Buzz
Fizz
5
FizzBuzz
7
Fizz
Buzz
Fizz

En este ejemplo, "Fizz" se imprime para los múltiplos de 2, "Buzz" para los múltiplos de 3, y "FizzBuzz" para los múltiplos de ambos (como el 6).

Si las entradas son 15, 3, y 5 (los divisores clásicos), la salida debería coincidir con el FizzBuzz original:

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

Pruébalo tú mismo

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

Todas las lecciones de Fundamentos