Zahlenmuster
Teil des Abschnitts Grundlagen der Rust-Journey von Coddy. Lektion 73 von 75.
Beim Erstellen von Mustern wie Pyramiden müssen wir häufig Zeichenketten mit wiederholten Zeichen erzeugen. In Rust gibt es dafür verschiedene Möglichkeiten, aber hier ist eine der unkompliziertesten Methoden:
let str = "a".repeat(10);str enthält "aaaaaaaaaa"
Die Methode repeat() erfordert ausdrücklich ein Argument vom Typ usize, nicht einen gewöhnlichen Integer-Typ wie i32.
usize ist Rusts vorzeichenloser Integer-Typ mit der Größe eines Zeigers – seine Größe hängt von deiner Architektur ab (32 Bit auf 32-Bit-Systemen, 64 Bit auf 64-Bit-Systemen).
let count: usize = 5;
let repeated = "x".repeat(count); // Das funktioniertWenn du einen i32 oder einen anderen Integer-Typ hast, musst du ihn konvertieren:
let num: i32 = 7;
let repeated = "y".repeat(num as usize);
// Mit 'as usize' konvertierenDas lässt sich nicht kompilieren:
let repeated = "z".repeat(num);
// Fehler: usize erwartet, i32 gefundenAufgabe
EinfachJeder Testfall hat eine Eingabe – eine ungerade ganze Zahl.
Deine Aufgabe ist es, eine Pyramide der Größe n mit * auszugeben. Hier sind einige Beispiele:
Pyramide der Größe 1
*Pyramide der Größe 5
*
***
*****Pyramide der Größe 7
*
***
*****
*******Eingabe
- ungerade Ganzzahl
nvom Benutzer - 1 <=
n< 1000
Tipps
- Versuche, mit den kleinen Dreiecken anzufangen.
- Sieh dir den Hinweis an, wenn du nicht weiterkommst ;)
ngibt die Anzahl der*in der untersten Reihe an
Hinweis: In Rust benötigen Funktionen, die sich mit der „Größe“ oder „Länge“ von etwas befassen (wie .repeat()), einen Typ namens usize anstelle von i32; du kannst usize wie eine normale ganze Zahl behandeln, die niemals negativ ist.
Probier es selbst
use std::io;
fn main() {
let mut input_n = String::new();
io::stdin().read_line(&mut input_n).unwrap();
let n: usize = input_n.trim().parse().unwrap();
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorArithmetische AbkürzungenVergleichsoperatorenString-Vergleich7Grundlagen IO
Ausgabe in die KonsoleBenutzereingaben lesenWiederholung - Bis 120Wiederholung - Wahr oder Falsch5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung - Einfache LogikLogische Operatoren Teil 311Funktionen
Funktionen deklarierenParameter und ArgumenteRückgabewerteMehrere RückgabewerteWiederholung - Sigma-FunktionWiederholung - Validierungsfunktion14Iterieren über Arrays
Range-LeitfadenErweiterte For-SchleifeBorrowing in SchleifenGängige Array-Operationen3Variablen Teil 2
TypdeklarationNamenskonventionenTypinferenzRückblick - Variablen initialisierenTypumwandlung6Entscheidungsfindung
If-AusdrückeIf-ElseMatch-AnweisungZusammenfassung - If-ElseVerschachteltes If-Else9Schleifen
For-Schleife über SerienWhile-SchleifeBreakContinueVerschachtelte SchleifenSchleifen-LabelsEndlosschleifeRückblick – Dynamische EingabeÜbe selbstständig: Online-Rust-Compiler