Menu
Coddy logo textTech

Ciclo annidato

Fa parte della sezione Fondamenti del percorso Rust di Coddy. Lezione 41 di 75.

Un ciclo annidato è semplicemente un ciclo all’interno di un altro ciclo. Il ciclo interno completerà tutte le sue iterazioni per ogni singola iterazione del ciclo esterno. Una buona analogia è un orologio: per ogni ora (ciclo esterno), la lancetta dei minuti (ciclo interno) deve completare il suo intero ciclo di 60 minuti.

Esempio di ciclo annidato:

for x in 0..2 {
    for y in 0..2 {
        println!("{} {}", x, y);
    }
}
// Verrà stampato:
// 0 0
// 0 1
// 1 0
// 1 1

Il ciclo esterno (x) viene eseguito due volte e, per ciascuna di queste volte, il ciclo interno (y) viene eseguito due volte.

challenge icon

Sfida

Principiante

Scrivi un programma che trovi tutte le terne di numeri la cui somma è n, usando numeri da 1 a n - 1. Il programma deve mostrare tutte le combinazioni possibili in cui il primo numero è minore o uguale al secondo e il secondo è minore o uguale al terzo (cioè in ordine non decrescente). Questo garantisce che non ci siano terne duplicate come "1 2 7" e "2 1 7", che rappresentano lo stesso insieme di numeri.

Ad esempio, se n = 10, l'output dovrebbe essere:

1 1 8
1 2 7
1 3 6
1 4 5
2 2 6
2 3 5
2 4 4
3 3 4

Perché:

1 + 1 + 8 = 10
1 + 2 + 7 = 10
1 + 3 + 6 = 10
1 + 4 + 5 = 10
2 + 2 + 6 = 10
2 + 3 + 5 = 10
2 + 4 + 4 = 10
3 + 3 + 4 = 10

Ordine di stampa: Le terne devono essere stampate in ordine crescente. Il primo numero deve scorrere dal più piccolo al più grande e, per ogni primo numero, il secondo numero deve scorrere dal primo numero al valore massimo valido, assicurando a ≤ b ≤ c.

Provalo tu

use std::io;

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input).unwrap();
    let n: i32 = input.trim().parse().unwrap();
    // Scrivi il tuo codice qui sotto

}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Rust online