אבל אני חייב להזהיר: אני לא זוכר את התשובה!!! החידה: לכתוב פונקציית swap בלי להשתמש במשתנה עזר! כלומר להחליף ערכי משתנים, בלי להשתמש במשתנה ביניים. יש לזה פתרון, אני לא זוכר אותו. ~פשוש~
סחתיין. זה אכן הפתרון. לילה טוב! נ.ב. אם תוסיף הערה בסוף כל שורה, הטקסט יראה קריא יותר. דוגמה: if(x==y) x++ //remark while(x!=5) x*= //remark מדוע לא שיפצו את העברית כך שתקרא משמאל לימין? זה היה חוסך הרבה צרות!
סחתיין. זה אכן הפתרון. לילה טוב! נ.ב. אם תוסיף הערה בסוף כל שורה, הטקסט יראה קריא יותר. דוגמה: if(x==y) x++ //remark while(x!=5) x*= //remark מדוע לא שיפצו את העברית כך שתקרא משמאל לימין? זה היה חוסך הרבה צרות!
בס"ד מה אם רוצים להחליף בין שני CStringים בלי משתנה עזר? בין 2 מערכי מחרוזות? וחוץ מזה גם ב-INTים יכול להיות OVERFLOW!!! הפתרון הנכון הוא עם XOR. בברכה...
בס"ד ומה אם אלו משתנים מובנים בשפה? ומה אם אלו 2 intים? ומה אם בכלל לרוב המחלקות אין לאופרטורים האלו את המשמעות המתמטית הרגילה שלהם, ואז בכלל הטריק הזה לא יעבוד? אני מציע שתבדוק על מה אתה מדבר לפני שאתה אומר את זה... בברכה...
זייני שכל אתם אחד אחד. כאילו שזה משנה איזה שיטה טובה יותר ומה מקרי הקצה, עם קשר או בלי ל-OO. אז תבינו, השיטה היחידה שטובה היא להשתמש במשתנה עזר, וכל ניסיון להראות כמה אתם כלים כי אתם יכולים לעשות את זה בלי הוא אידיוטי לחלוטין.. אלי
אבל מדובר בחידה מתימטית. ואגב, ביצוע שלושה xor-ים עדיף על ביצוע שלושה mov-ים, ולכן אם ידוע שמדובר במספרים (למשל, מיון מערך של int-ים) - ומדובר במערך גדול מאוד ובפעולה שמבוצעת המון, אז לפעמים כדאי לשים לב לדברים כאלו.
בס"ד אמרתי שהשיטה הזו לא טובה בגלל... על זה היה הויכוח... ליואב יש באג בשכל בכל הנוגע ל-OOP, והוא נוהג לזרוק את המונח כל פעם שדוחקים אותו לפינה בויכוח... בברכה...