לירן שלום רב!
אני ממש מצטער, הייתי בטוח שכתבת בג'אווה.
אם כך הפתרון שלך בסדר!
לגבי ההסבר לפיתרון שהצעתי:
טילדה היא אינה אופרטור לא אלא אופרטור שמחזיר את המספיר השלילי מהשארית וקטן ממנו ב-1 למשל:
~(5%2)
-2)
~(19%4)
-4)
לכן מכיוון שהתוכנית הראשונית אומרת:
אם מספר זוגי- חלק איקס ב-2 והוסף 1
ואם מספר אי זוגי- הכנס איקס לחלק ל-2
אזי אם נכניס טילדה נדע שכאשר מספר זוגי יש לנו חסר של מינוס אחד ואז איקס לחלק ל-2 ועוד 2 ייתן קלט רצוי
אם מספר אי זוגי טילדה תעשה מינוס 2 ולכן גם כן איקס לחלק ל-2 ועוד 2 יהיה טוב.
אך ארשה לי להציע את הפתרון המיוחל שהוא יותר פשוט מהאחרים:
x=x/2+1-(x%2)
מה אתה חושב??