Menu
Coddy logo textTech

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 funktioniert

Wenn 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' konvertieren

Das lässt sich nicht kompilieren:

let repeated = "z".repeat(num);
// Fehler: usize erwartet, i32 gefunden
challenge icon

Aufgabe

Einfach

Jeder 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 n vom Benutzer
  • 1 <= n < 1000

Tipps

  • Versuchen Sie, mit den kleinen Dreiecken zu beginnen
  • Schauen Sie sich den Hinweis an, wenn Sie nicht weiterkommen ;)

n reprä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 gefunden

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();

    
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Fundamentals