Zahlenmuster
Teil des Abschnitts Fundamentals der Rust-Journey von Coddy — Lektion 73 von 75.
Beim Erstellen von Mustern wie Pyramiden müssen wir oft Zeichenketten mit wiederholten Zeichen erstellen. In Rust gibt es mehrere Möglichkeiten, dies zu erreichen, aber hier ist eine der einfachsten Methoden:
let str = "a".repeat(10);str wird "aaaaaaaaaa" enthalten
Die repeat()-Methode erfordert ausdrücklich ein usize-Argument, keinen regulären Ganzzahltyp wie i32.
usize ist Rusts vorzeichenloser Ganzzahltyp in Zeigergröße – seine Größe hängt von Ihrer Architektur ab (32 Bit auf 32-Bit-Systemen, 64 Bit auf 64-Bit-Systemen).
let count: usize = 5;
let repeated = "x".repeat(count); // Dies funktioniertWenn du ein i32 oder einen anderen Ganzzahltyp hast, musst du es 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.
Ihre Aufgabe ist es, eine n - Pyramide mit * auszugeben, hier sind einige Beispiele:
1 - Pyramide
*5 - Pyramide
*
***
*****7 - Pyramide
*
***
*****
*******Eingabe
- ungerade Ganzzahl
nvom Benutzer - 1 <=
n< 1000
Tipps
- Versuchen Sie, mit den kleinen Dreiecken zu beginnen
- Schauen Sie sich den Hinweis an, wenn Sie nicht weiterkommen ;)
nrepräsentiert die Anzahl der*in der untersten Zeile
Hinweis: In Rust erfordern Funktionen, die mit der "Größe" oder "Länge" von etwas zu tun haben (wie .repeat()), einen Typ namens usize anstelle von i32; Sie können usize als eine normale ganze Zahl behandeln, die niemals negativ ist.
Spickzettel
Um in Rust Strings mit wiederholten Zeichen zu erstellen, verwenden Sie die Methode repeat():
let str = "a".repeat(10);Dies erzeugt "aaaaaaaaaa" (10 Wiederholungen von "a").
Die Methode repeat() akzeptiert nur usize (vorzeichenloser Ganzzahltyp in Zeigergröße), nicht i32 oder andere Ganzzahltypen.
let count: usize = 5;
let repeated = "x".repeat(count); // Funktioniert
let num: i32 = 7;
let repeated = "y".repeat(num as usize); // Funktioniert
let repeated = "z".repeat(num); // Fehler: usize erwartet, i32 gefundenProbier 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 Fundamentals
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