Schema numerico
Fa parte della sezione Fondamenti del percorso Rust di Coddy. Lezione 73 di 75.
Quando creiamo motivi come le piramidi, spesso dobbiamo creare stringhe con caratteri ripetuti. In Rust, ci sono diversi modi per farlo, ma ecco uno dei metodi più semplici:
let str = "a".repeat(10);str conterrà "aaaaaaaaaa"
Il metodo repeat() richiede specificamente un argomento usize, non un tipo intero normale come i32.
usize è il tipo intero senza segno della dimensione di un puntatore di Rust: la sua dimensione dipende dalla tua architettura (32 bit sui sistemi a 32 bit, 64 bit sui sistemi a 64 bit).
let count: usize = 5;
let repeated = "x".repeat(count); // Questo funzionaSe hai un i32 o un altro tipo intero, dovrai convertirlo:
let num: i32 = 7;
let repeated = "y".repeat(num as usize);
// Converti con 'as usize'Questo non verrà compilato:
let repeated = "z".repeat(num);
// Errore: atteso usize, trovato i32Sfida
FacileOgni caso di test ha un input: un numero intero dispari.
Il tuo compito è stampare una piramide di n righe usando *; ecco alcuni esempi:
Piramide di 1 riga
*Piramide di 5 righe
*
***
*****Piramide di 7 righe
*
***
*****
*******Input
- Un numero intero dispari
nfornito dall'utente - 1 <=
n< 1000
Suggerimenti
- Prova a partire dai triangoli più piccoli
- Se ti blocchi, controlla il suggerimento ;)
nrappresenta il numero di*nella riga inferiore
Nota: In Rust, le funzioni che gestiscono la «dimensione» o la «lunghezza» di qualcosa (come .repeat()) richiedono un tipo chiamato usize invece di i32; puoi considerare usize come un normale numero intero che non è mai negativo.
Provalo tu
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();
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 1
Operatori aritmeticiOperatore moduloAbbreviazioni aritmeticheOperatori di confrontoConfronto tra stringhe7Input/output di base
Stampare sulla consoleLeggere l'input dell'utenteRiepilogo - Fino a 120Riepilogo - Vero o falso5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Ripasso - Logica sempliceOperatori logici Parte 311Funzioni
Dichiarare le funzioniParametri e argomentiValori restituitiValori restituiti multipliRiepilogo - funzione SigmaRiepilogo - funzione di validazione14Iterare sugli array
Guida ai rangeCiclo for avanzatoPrestito nel cicloOperazioni comuni sugli array3Variabili Parte 2
Dichiarazione del tipoConvenzioni di denominazioneInferenza del tipoRipasso - Inizializzare le variabiliConversione di tipo9Cicli
Ciclo for su sequenzeCiclo whileBreakContinueCiclo annidatoEtichette dei cicliCiclo infinitoRiepilogo - Input dinamico12Fondamenti degli array
Dichiarare gli arrayArray come parametroAccedere agli elementiModificare gli arrayRiepilogo - Stampare un array in modo leggibile15Operazioni sulle stringhe
Metodi delle stringheMacro format!Conversione delle stringheRipasso - FormattazioneEsercitati da solo: Compilatore Rust online