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

Practica por tu cuenta: Playground de Swift