Menu
Coddy logo textTech

Añadiendo el giro

Parte de la sección Fundamentos del Journey de R de Coddy — lección 55 de 78.

challenge icon

Desafío

Fácil

En la lección anterior, creaste un programa FizzBuzz que recorre números utilizando los divisores predeterminados 3 y 5. Ahora, añade un giro haciendo que los divisores sean personalizables a través de parámetros predeterminados.

Modifica tu función fizzbuzz para que acepte tres argumentos:

  • n - el número a comprobar (obligatorio)
  • fizz_divisor - el divisor para "Fizz" (opcional, por defecto es 3)
  • buzz_divisor - el divisor para "Buzz" (opcional, por defecto es 5)

La función debe utilizar estos divisores personalizados en lugar de valores fijos al comprobar la divisibilidad.

Recibirás tres líneas de entrada:

  1. El límite superior n
  2. El divisor fizz
  3. El divisor buzz

Realiza un bucle del 1 al n y llama a tu función fizzbuzz actualizada con los tres argumentos. Imprime cada resultado.

Por ejemplo, si las entradas son:

10
2
3

La salida debería ser:

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

Si las entradas son:

15
3
5

La salida debería 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"

Pruébalo tú mismo

# 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 las lecciones de Fundamentos