Menu
Coddy logo textTech

Adicionando a Reviravolta

Parte da seção Fundamentos do Journey de R da Coddy. Lição 55 de 78.

challenge icon

Desafio

Fácil

Na lição anterior, você criou um programa FizzBuzz que percorre números usando os divisores padrão 3 e 5. Agora, adicione a variação tornando os divisores personalizáveis por meio de parâmetros padrão.

Modifique sua função fizzbuzz para aceitar três argumentos:

  • n - o número a ser verificado (obrigatório)
  • fizz_divisor - o divisor de "Fizz" (opcional, com valor padrão 3)
  • buzz_divisor - o divisor de "Buzz" (opcional, com valor padrão 5)

A função deve usar esses divisores personalizados em vez de valores codificados diretamente ao verificar a divisibilidade.

Você receberá três linhas de entrada:

  1. O limite superior n
  2. O divisor de fizz
  3. O divisor de buzz

Faça um loop de 1 até n e chame sua função fizzbuzz atualizada com os três argumentos. Imprima cada resultado.

Por exemplo, se as entradas forem:

10
2
3

A saída deve ser:

[1] "1"
[1] "Fizz"
[1] "Buzz"
[1] "Fizz"
[1] "5"
[1] "FizzBuzz"
[1] "7"
[1] "Fizz"
[1] "Buzz"
[1] "Fizz"

Se as entradas forem:

15
3
5

A saída deve ser:

[1] "1"
[1] "2"
[1] "Fizz"
[1] "4"
[1] "Buzz"
[1] "Fizz"
[1] "7"
[1] "8"
[1] "Fizz"
[1] "Buzz"
[1] "11"
[1] "Fizz"
[1] "13"
[1] "14"
[1] "FizzBuzz"

Experimente você mesmo

# Read input
con <- file("stdin", "r")
n <- as.numeric(suppressWarnings(readLines(con, n = 1)))

# Function from previous lesson
check_divisible <- function(number, divisor) {
  return(number %% divisor == 0)
}

# Create the fizzbuzz function
fizzbuzz <- function(n) {
  if (check_divisible(n, 3) && check_divisible(n, 5)) {
    return("FizzBuzz")
  } else if (check_divisible(n, 3)) {
    return("Fizz")
  } else if (check_divisible(n, 5)) {
    return("Buzz")
  } else {
    return(as.character(n))
  }
}

# Loop through numbers from 1 to n and print the result
for (i in 1:n) {
  print(fizzbuzz(i))
}

Todas as lições de Fundamentos

Pratique por conta própria: Compilador de R online