Menu
Coddy logo textTech

תבנית מספרים

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

כשיוצרים תבניות כמו פירמידות, לעיתים קרובות צריך ליצור מחרוזות עם תווים חוזרים. ב-Rust יש כמה דרכים לעשות זאת, אבל הנה אחת השיטות הפשוטות ביותר:

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

str יכיל את "aaaaaaaaaa"

המתודה repeat() דורשת במפורש ארגומנט מסוג usize, ולא סוג שלם רגיל כמו i32.

usize הוא טיפוס מספר שלם ללא סימן בגודל מצביע ב-Rust — הגודל שלו תלוי בארכיטקטורה שלך (32 ביט במערכות 32-ביט, 64 ביט במערכות 64-ביט).

let count: usize = 5;
let repeated = "x".repeat(count);  // זה עובד

אם יש לך i32 או טיפוס שלם אחר, יהיה עליך להמיר אותו:

let num: i32 = 7;
let repeated = "y".repeat(num as usize);
// המרה באמצעות 'as usize'

זה לא יתקמפל:

let repeated = "z".repeat(num);
// שגיאה: צופה usize, נמצא i32
challenge icon

אתגר

קל

לכל מקרה בדיקה יש קלט אחד — מספר שלם אי־זוגי.
המשימה שלך היא להדפיס פירמידה בגובה n באמצעות *. הנה כמה דוגמאות:

פירמידה בגובה 1

*

פירמידה בגובה 5

*
***
*****

פירמידה בגובה 7

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

קלט

  • מספר שלם אי־זוגי n מהמשתמש
  • 1 <= n < 1000

טיפים

  • נסו להתחיל מהמשולשים הקטנים
  • בדקו את הרמז אם נתקעתם ;)

n מייצג את מספר ה־ * בשורה התחתונה

הערה: ב־Rust, פונקציות שעוסקות ב״גודל״ או ב״אורך״ של משהו (כמו .repeat()) דורשות טיפוס בשם usize במקום i32; אפשר להתייחס אל usize כמספר שלם רגיל שלעולם אינו שלילי.

נסו בעצמכם

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 iconבחנו את עצמכם

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

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

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