Menu
Coddy logo textTech

לולאה מקוננת

חלק מהיחידה יסודות במסלול ה-Rust של Coddy. שיעור 41 מתוך 75.

לולאה מקוננת היא פשוט לולאה בתוך לולאה אחרת. הלולאה הפנימית תשלים את כל האיטרציות שלה בכל איטרציה בודדת של הלולאה החיצונית. שעון הוא דוגמה טובה לכך: עבור כל שעה (הלולאה החיצונית), מחוג הדקות (הלולאה הפנימית) חייב להשלים מחזור מלא של 60 דקות.

דוגמה ללולאה מקוננת:

for x in 0..2 {
    for y in 0..2 {
        println!("{} {}", x, y);
    }
}
// הפלט יהיה:
// 0 0
// 0 1
// 1 0
// 1 1

הלולאה החיצונית (x) רצה פעמיים, ובכל אחת מהפעמים האלה הלולאה הפנימית (y) רצה פעמיים.

challenge icon

אתגר

מתחילים

כתבו תוכנית שמוצאת את כל השלשות של מספרים שסכומן n, באמצעות מספרים מ־1 עד n - 1. התוכנית צריכה להציג את כל הצירופים האפשריים שבהם המספר הראשון קטן או שווה למספר השני, והמספר השני קטן או שווה למספר השלישי (כלומר, בסדר לא יורד). כך נמנעות שלשות כפולות כמו "1 2 7" ו־"2 1 7", שמייצגות את אותה קבוצת מספרים.

לדוגמה, אם n = 10, הפלט צריך להיות:

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

מכיוון ש:

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

סדר ההדפסה: יש להדפיס את השלשות בסדר עולה. המספר הראשון צריך להתקדם מהקטן לגדול, ולכל מספר ראשון, המספר השני צריך להתקדם מהמספר הראשון עד לערך המרבי האפשרי, כדי להבטיח ש־a ≤ b ≤ c.

נסו בעצמכם

use std::io;

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input).unwrap();
    let n: i32 = input.trim().parse().unwrap();
    // כתבו את הקוד שלכם למטה

}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר Rust אונליין