Menu
Coddy logo textTech

Adicionando o Diferencial

Parte da seção Fundamentos do Journey de Swift da Coddy — lição 61 de 86.

challenge icon

Desafio

Fácil

Na lição anterior, você criou um loop que executa o FizzBuzz de 1 até um determinado limite usando os divisores fixos 3 e 5. Agora, adicione uma variação tornando os divisores customizáveis!

Modifique sua função fizzBuzz para aceitar dois parâmetros adicionais para os divisores personalizados:

  • Atualize a assinatura da função para: fizzBuzz(_ number: Int, fizzAt: Int = 3, buzzAt: Int = 5) -> String
  • Use fizzAt em vez de 3 para a verificação de "Fizz"
  • Use buzzAt em vez de 5 para a verificação de "Buzz"
  • Os valores padrão garantem que o FizzBuzz clássico ainda funcione quando os divisores não forem especificados

Você receberá as seguintes entradas:

  1. O limite superior (inteiro)
  2. O primeiro divisor para "Fizz" (inteiro)
  3. O segundo divisor para "Buzz" (inteiro)

Atualize seu loop para passar esses divisores personalizados para a função para cada número.

Por exemplo, se as entradas forem 10, 2 e 3, a saída deve ser:

1
Fizz
Buzz
Fizz
5
FizzBuzz
7
Fizz
Buzz
Fizz

Neste exemplo, "Fizz" é impresso para múltiplos de 2, "Buzz" para múltiplos de 3 e "FizzBuzz" para múltiplos de ambos (como 6).

Se as entradas forem 15, 3 e 5 (os divisores clássicos), a saída deve corresponder ao FizzBuzz original:

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

Experimente você mesmo

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 as lições de Fundamentos