משעמם...

IdanR

New member
טוב, בכל זאת זה פורום שפות תכנות...

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

IdanR

New member
אני יודע שאפשר...

כתבתי את זה די מהר בלי לחשוב הרבה ולא ממש חסכתי. למשל, אין צורך בסוגריים בלולאת הfor המקוננת. וגם הייתי יכול להצהיר על כל המשתנים בשורה אחת. השאלה היא, כמה שורות של קוד אתה באמת חושב שניתן לחסוך? משהו מהותי?
 

WarLord

New member
ואם ננסח מחדש

יש לבדוק את כמות המחלקים (פרט ל 1 ולעצמו) של כל מספר בין אחד למאה - אם היא זוגית המנורה כבויה, אם אי זוגית המנורה דולקת. מכאן ברור שכל הראשוניים כבויים אבל מה הלאה ?
 

WarLord

New member
אגב ../images/Emo62.gif הנה עוד חידה (קלה)

יש חדר ובו 3 נורות
. בחדר סמוך יש 3 מפסקים (מפסק לכל נורה). מחדר המפסקים לא רואים את הנורות ומחדר הנורות לא רואים את המפסקים. ניתן לשחק עם המפסקים כמה שרוצים מבלי לצאת מחדר המפסקים ולאחר מכן להכנס לחדר עם הנורות. יש לגלות איזה מפסק שולט על איזו נורה. (התהליך של שינוי מצב המפסקים ואח"כ כניסה לחדר הנורות מבוצע פעם אחד בלבד !)
 

zontar1

New member
תשובה

מדליקים מפסק אחד ולאחר זמן מה מכבים אותו ומדליקים אחר. ניגשים לחדר עם הנורות והמפסק האחרון שולט על הנורה הדלוקה, המפסק שהדלקנו וכיבינו שולט על הנורה הכבויה שעדיין חמה , והאחרון שולט על הכבויה הקרה.
 
למעלה