Menu
Coddy logo textTech

Ajouter la variante

Fait partie de la section Fondamentaux du Journey R de Coddy. Leçon 55 sur 78.

challenge icon

Défi

Facile

Dans la leçon précédente, vous avez créé un programme FizzBuzz qui parcourt des nombres à l’aide des diviseurs par défaut 3 et 5. Maintenant, ajoutez la variante en rendant les diviseurs personnalisables grâce aux paramètres par défaut.

Modifiez votre fonction fizzbuzz pour qu’elle accepte trois arguments :

  • n - le nombre à vérifier (obligatoire)
  • fizz_divisor - le diviseur de « Fizz » (facultatif, sa valeur par défaut est 3)
  • buzz_divisor - le diviseur de « Buzz » (facultatif, sa valeur par défaut est 5)

La fonction doit utiliser ces diviseurs personnalisés au lieu de valeurs codées en dur lors de la vérification de la divisibilité.

Vous recevrez trois lignes d’entrée :

  1. La limite supérieure n
  2. Le diviseur de fizz
  3. Le diviseur de buzz

Parcourez les nombres de 1 à n et appelez votre fonction fizzbuzz mise à jour avec les trois arguments. Affichez chaque résultat.

Par exemple, si les entrées sont :

10
2
3

La sortie devrait être :

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

Si les entrées sont :

15
3
5

La sortie devrait être :

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

Essayez vous-même

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

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Compilateur R en ligne