תרגיל לא מובן בC# - עמוד 2 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

תרגיל לא מובן בC#


gal555

Recommended Posts

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

השיטה שאני מדבר עליה מבוססת על אותו עקרון, עם חיבור וחיסור:

a = a + b;
b = a - b;
a = a - b;

והשיטה השנייה היא קצת יותר מתוחכמת (משתמשת בתכונה מסויימת של אופרטור השמה):

a ^= b ^= a ^= b;

השיטה משתמשת באותו עיקרון כמו הקודמת, אבל מסתמכת על כך ש-xor (אופרטור ^) היא פעולה הופכית לעצמה.

זהירות - בשיטות אלה חשוב לוודא ש-a ו-b מצביעים למקומות שונים (אם הם Integer ולא int או אם משתמשים במקרו של C) אחרת זה מאפס אותם.

חומר קריאה: http://en.wikipedia.org/wiki/XOR_swap_algorithm

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...