Menu
Coddy logo textTech

Die Besonderheit hinzufügen

Teil des Abschnitts Grundlagen der R-Journey von Coddy — Lektion 55 von 78.

challenge icon

Aufgabe

Einfach

In der vorherigen Lektion haben Sie ein FizzBuzz-Programm erstellt, das Zahlen mit den Standard-Divisoren 3 und 5 durchläuft. Fügen Sie nun eine Besonderheit hinzu, indem Sie die Divisoren durch Standardparameter anpassbar machen.

Ändern Sie Ihre fizzbuzz-Funktion so ab, dass sie drei Argumente akzeptiert:

  • n - die zu prüfende Zahl (erforderlich)
  • fizz_divisor - der Divisor für "Fizz" (optional, Standardwert ist 3)
  • buzz_divisor - der Divisor für "Buzz" (optional, Standardwert ist 5)

Die Funktion sollte diese benutzerdefinierten Divisoren anstelle von fest kodierten Werten verwenden, wenn sie die Teilbarkeit prüft.

Sie erhalten drei Eingabezeilen:

  1. Die Obergrenze n
  2. Der Fizz-Divisor
  3. Der Buzz-Divisor

Durchlaufen Sie die Zahlen von 1 bis n in einer Schleife und rufen Sie Ihre aktualisierte fizzbuzz-Funktion mit allen drei Argumenten auf. Geben Sie jedes Ergebnis aus.

Wenn die Eingaben zum Beispiel wie folgt lauten:

10
2
3

Sollte die Ausgabe wie folgt aussehen:

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

Wenn die Eingaben wie folgt lauten:

15
3
5

Sollte die Ausgabe wie folgt aussehen:

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

Probier es selbst

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

Alle Lektionen in Grundlagen