Die Besonderheit hinzufügen
Teil des Abschnitts Grundlagen der R-Journey von Coddy — Lektion 55 von 78.
Aufgabe
EinfachIn 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 ist3)buzz_divisor- der Divisor für "Buzz" (optional, Standardwert ist5)
Die Funktion sollte diese benutzerdefinierten Divisoren anstelle von fest kodierten Werten verwenden, wenn sie die Teilbarkeit prüft.
Sie erhalten drei Eingabezeilen:
- Die Obergrenze
n - Der Fizz-Divisor
- 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
3Sollte 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
5Sollte 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
4Operatoren Teil 2
Logische Operatoren (AND, OR)Logische Operatoren Teil 2 (NOT)Wiederholung – Einfache LogikVektorisierte Logik Teil 1Vektorisierte Logik Teil 27Rechnungs-Split-Rechner
WillkommensnachrichtBenutzereingaben abfragen10FizzBuzz mit einer Besonderheit
SpielübersichtDie FizzBuzz-Funktion13Vektoren für Fortgeschrittene
Vektor-Slicing und IndizierungLogische IndizierungVektorarithmetik & RecyclingDer %in%-Operator2Variablen und Datentypen
Numerischer DatentypGanzzahl-DatentypZeichen-DatentypLogischer DatentypDatentypen prüfenBenennungskonventionenFehlende Werte: NAZusammenfassung – Variablenerstellung5Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher TaschenrechnerVerschachteltes If - Else8Schleifen
For-SchleifeWhile-SchleifeBreakNext (Continue)Rückblick - FakultätSequenzgenerierung (seq, :)Verschachtelte SchleifenRückblick - Dynamische Eingabe3Operatoren Teil 1
Arithmetische OperatorenGanzzahlige Division und ModuloZuweisungsoperatorenWiederholung - Einfache MathematikVergleichsoperatoren6Grundlagen der Ein- und Ausgabe
Print-AusgabeCat zur AusgabeAusgabe mit VariablenEingabe lesen mit readline()Grundlagen der TypumwandlungWiederholung – AltersrechnerWiederholung – Wahr oder Falsch9Funktionen
Funktionen deklarierenFunktionsargumenteRückgabewerteWiederholung - Sigma-FunktionWiederholung - ValidierungsfunktionStandard-Parameterwerte