צאו מנקודת הנחה שאני אמור לפתור את השאלה עם מה שלמדנו עד עכשיו, כלומר לולאות for,if,while, do while, else להלן ההוראות:
הסרת ספרות כפולות
המשתמש יקליד מספר (חיובי), עליכם להסיר ספרות כפולות מהמספר שהמשתמש הקליד, כך שעבור ספרה שמופיעה יותר מפעם אחת, רק המופע במיקום בעל הערך הגבוה ביותר יישאר (ככל שהמיקום שמאלי יותר – כך גבוה הערך).
דוגמאות:
121314 ----> 1234
1123 ---> 123
12324 ---> 1234
1111 --> 1
יש להניח כי מספר לא יתחיל בספרה 0 .
בנוסף יש לי גם הוראות אבל הבעיה היא שאני לא מצליח ליישם אותם כל כך..
א. בודדו את הספרה הימנית ע"י השימוש באופרטור % והסירו אותה מהמספר המקורי ע"י אופרטור /
ב. בדקו אם הספרה מופיעה בשאר המספר ע"י שימוש באופרטור % ובאופרטור /
ג. במידה והספרה מופיעה – התעלמו ממנה והתחילו את א.
ד. במידה והספרה לא מופיעה – אזי צריך לשמור אותה במספר החדש – על מנת לבצע זאת, השתמשו במשתנה שיכיל את המיקום
החדש של הספרה, ובצעו newNumber=newNumber+digit*position .
ה. לא לשכוח לשנות את ערך position ע"י position=position * 10 – כך שנדע בפעם הבאה לאיזה מיקום להכניס את הספרה.
ו. חזרה לסעיף א' כל עוד המספר המקורי הוא לא אפס ....
אוקי עכשיו עם א' אין לי בעיה, בסעיף ב' אני מתחיל להסתבך, אין לי מושג אם איזו לולאה להשתמש כדי לבדוק אם המספר הימני ביותר חוזר על עצמו.. !!!
תודה מראש לעוזרים !!!