לולאות

davidw260

New member
לולאות

יש לי בעיה שהתוכנית שלי לא מצליחה להתמודד עם הספרה 0. המשתמש אמור להכניס לתוך התוכנית כל מספר שהוא בוחר ואז התוכנית אמורה להשיב לו האם מדובר במס' משוכלל או לא. מס' משוכלל הכוונה היא למס' שסך כל המחלקים שלו שווים אליו. למשל: המס' 6 הוא מס' משוכלל בגלל ש:1+2+3 שהם כל המחלקים שלו שווים אליו. ככה גם המס' 28 למשל שהמחלקים שלו: 1+2+4+7+14 שווים אליו. וככה הלאה. אני מבין שהמקרה עם המס' 0 הוא קצת מיוחד יותר אבל לא יודע מה לעשות עם זה.
 

BravoMan

Active member
אם המקרה מיוחד תוסיף בדיקה מיוחדת.

הרבה פעמים בתוכנה יש מה שמכונה "מקרה קצה", מקרה שלא מתאים לאלגוריתם הכללי ושובר אותו.

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

אז, לפני שאתה מתחיל לחפש מחלקים, בדוק אם המספר שקיבלת הוא 0.

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

davidw260

New member
לולאות

תודה על ההצעה לעזרה. בסוף הסתדרתי עם המקרה הספציפי של 0.
 
למעלה