תרגילים
תרגיל
מספר חיובי כלשהו יקרא סודי באופן מלא אם כל התנאים הבאים מתקיימים עבורו:
- הוא מתחלק בסכום כל ספרותיו.
- מספר המחלקים שלו זוגי.
- הספרה הראשונה שלו קטנה מהספרה האחרונה שלו.
- הסכום של הספרות הזוגיות שלו גדול מהסכום של הספרות האי-זוגיות שלו.
מספר יקרא \(x/4\) סודי אם מתקיימים עבורו \(x\) מבין ארבעת התנאים הללו.
כתבו תוכנית שמדפיסה את כל המספרים בין 0 למיליון ואת רמת הסודיות שלהם. כתבו פונקציה נפרדת לכל אחד מהתנאים.
תרגיל
בהנתן מספר חיובי כלשהו \(n > 0\), נגדיר את סדרת קולץ (Collatz Sequence) שלו כסדרה רקורסיבית המוגדרת ע״י:
$$ n_{i + 1} = \frac{n_i}{2} \text{ if } n_i \text{ is even} $$
$$ n_{i + 1} = 3 \cdot n + 1 \text{ if } n_i \text{ is odd} $$
הסדרה נעצרת כאשר \(n_i = 1\).
כתבו תוכנית שמוצאת עבור כל מספר בין 0 ל-1000 את אורך סדרת קולץ שלו ואת המספר המקסימלי בסדרת קולץ שלו.
תרגיל
כתבו תוכנית לסימולציה של קרב יריות בין שני קאובויים. לכל קאובוי יש אקדח עם מקום ל-3 כדורים שמתחיל לא טעון. בכל שלב קראו מספר מכל קאובוי, שמשמעותו בחירת פעולה:
-
0 - טעינה:
- אם לקאובוי יש פחות מ-3 כדורים באקדח, היא מעלה את מספר הכדורים ב-1.
- אם לקאובוי יש בדיוק 3 כדורים, היא לא עושה כלום.
-
1 - התקפה:
- אם לקאובוי אין כדורים באקדח, היא לא עושה כלום.
- אם לקאובוי יש לפחות כדור אחד, היא תוקפת ומורידה את כמות הכדורים ב-1.
- אם תקפנו בזמן שהקאובוי השני לא הגן, הפעולה מורידה חיים מהקאובוי השני.
-
2 - הגנה:
- אם הקאובוי השני לא תקף באותו תור, הפעולה לא עושה כלום.
- אם הקאובוי השני תקף באותו התור, הפעולה מגנה מההתקפה שלו.
לכל קאובוי יש 3 חיים. כתבו תוכנית שמסמלצת את הקרב ביניהם ומדפיסה מי ניצח.