Menu
Coddy logo textTech

Pętle zagnieżdżone

Część sekcji Podstawy ścieżki Rust w Coddy. Lekcja 41 z 75.

Pętla zagnieżdżona to po prostu pętla wewnątrz innej pętli. Pętla wewnętrzna wykona wszystkie swoje iteracje podczas każdej pojedynczej iteracji pętli zewnętrznej. Dobrym przykładem jest zegar: dla każdej godziny (pętla zewnętrzna) wskazówka minutowa (pętla wewnętrzna) musi wykonać pełny 60-minutowy cykl.

Przykład zagnieżdżonej pętli:

for x in 0..2 {
    for y in 0..2 {
        println!("{} {}", x, y);
    }
}
// To wypisze:
// 0 0
// 0 1
// 1 0
// 1 1

Pętla zewnętrzna (x) wykonuje się dwa razy, a przy każdym z tych wykonań pętla wewnętrzna (y) wykonuje się dwa razy.

challenge icon

Wyzwanie

Początkujący

Napisz program, który znajduje wszystkie trójki liczb sumujące się do n, używając liczb od 1 do n - 1. Program powinien wyświetlić wszystkie możliwe kombinacje, w których pierwsza liczba jest mniejsza lub równa drugiej, a druga jest mniejsza lub równa trzeciej (czyli w kolejności nierosnącej). Dzięki temu unikniemy zduplikowanych trójek, takich jak "1 2 7" i "2 1 7", które reprezentują ten sam zestaw liczb.

Na przykład, jeśli n = 10, wynik powinien wyglądać tak:

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

Ponieważ:

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

Kolejność wyświetlania: Trójki powinny być wyświetlane w kolejności rosnącej. Pierwsza liczba powinna przyjmować wartości od najmniejszej do największej, a dla każdej pierwszej liczby druga liczba powinna przyjmować wartości od pierwszej liczby do maksymalnej prawidłowej wartości, zapewniając a ≤ b ≤ c.

Spróbuj swoich sił

use std::io;

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input).unwrap();
    let n: i32 = input.trim().parse().unwrap();
    // Napisz swój kod poniżej

}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Rust online