Menu
Coddy logo textTech

Aggiungere la variante

Fa parte della sezione Fondamenti del percorso R di Coddy. Lezione 55 di 78.

challenge icon

Sfida

Facile

Nella lezione precedente, hai creato un programma FizzBuzz che scorre i numeri usando i divisori predefiniti 3 e 5. Ora aggiungi una variante rendendo i divisori personalizzabili tramite parametri predefiniti.

Modifica la tua funzione fizzbuzz in modo che accetti tre argomenti:

  • n - il numero da controllare (obbligatorio)
  • fizz_divisor - il divisore per "Fizz" (opzionale, predefinito a 3)
  • buzz_divisor - il divisore per "Buzz" (opzionale, predefinito a 5)

La funzione dovrebbe usare questi divisori personalizzati invece di valori codificati direttamente quando controlla la divisibilità.

Riceverai tre righe di input:

  1. Il limite superiore n
  2. Il divisore di fizz
  3. Il divisore di buzz

Scorri i numeri da 1 a n e chiama la tua funzione fizzbuzz aggiornata con tutti e tre gli argomenti. Stampa ogni risultato.

Per esempio, se gli input sono:

10
2
3

L'output dovrebbe essere:

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

Se gli input sono:

15
3
5

L'output dovrebbe essere:

[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"

Provalo tu

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

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore R online