Menu
CoddyTech

Motif de nombres

Fait partie de la section Fondamentaux du Journey Rust de Coddy. Leçon 73 sur 75.

Lorsqu’on crée des motifs comme des pyramides, on a souvent besoin de créer des chaînes contenant des caractères répétés. En Rust, il existe plusieurs façons d’y parvenir, mais voici l’une des méthodes les plus simples :

let str = "a".repeat(10);

str contiendra "aaaaaaaaaa"

La méthode repeat() exige spécifiquement un argument de type usize, et non un type entier classique comme i32.

usize est le type entier non signé de Rust de la taille d’un pointeur : sa taille dépend de votre architecture (32 bits sur les systèmes 32 bits, 64 bits sur les systèmes 64 bits).

let count: usize = 5;
let repeated = "x".repeat(count);  // Ça fonctionne

Si tu as un i32 ou un autre type entier, tu devras le convertir :

let num: i32 = 7;
let repeated = "y".repeat(num as usize);
// Convertir avec 'as usize'

Ce code ne compilera pas :

let repeated = "z".repeat(num);
// Erreur : usize attendu, i32 trouvé
challenge icon

Défi

Facile

Chaque cas de test comporte une entrée : un nombre entier impair.
Ta tâche consiste à afficher une pyramide de n lignes à l’aide de * ; en voici quelques exemples :

Pyramide de 1 ligne

*

Pyramide de 5 lignes

*
***
*****

Pyramide de 7 lignes

*
***
*****
*******

Entrée

  • Un entier impair n fourni par l’utilisateur
  • 1 <= n < 1000

Conseils

  • Essaie de commencer par les petits triangles
  • Consulte l’indice si tu es bloqué(e) ;)

n représente le nombre de * sur la rangée du bas

Remarque : En Rust, les fonctions qui traitent la « taille » ou la « longueur » de quelque chose (comme .repeat()) nécessitent un type appelé usize plutôt que i32 ; tu peux considérer usize comme un nombre entier ordinaire qui n’est jamais négatif.

Essayez vous-même

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 iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Compilateur Rust en ligne