لغز بسيط أتمنى ما يكون متكرر
اللغز هو:
نريد عمل swap بين عددين صحيحين بدون متغير ثالث وفي جملة واحدة فقط
مثلا:
x = 5 y = 7
بعد الجملة هذي راح يكون
x = 7 y = 5
لغز بسيط أتمنى ما يكون متكرر
اللغز هو:
نريد عمل swap بين عددين صحيحين بدون متغير ثالث وفي جملة واحدة فقط
مثلا:
x = 5 y = 7
بعد الجملة هذي راح يكون
x = 7 y = 5
abofahad5515@hotmail.com
x ^= y ^= x ^=y;
يعني
x = x ^ y; y = x ^ y; x = x ^ y;
لعمل swap بين عددين دون استخدام متغير ثالث او استخدام دالة
يمكن عمل ذلك رياضياَ
اذا كان لدينا العددين a=5,b=10 تكون العملية كتالي
a=a*b
b=a/b
a=a/b
بعد ذلك تكون قيمة a=10,b=5
NAE كتب:لعمل swap بين عددين دون استخدام متغير ثالث او استخدام دالةيمكن عمل ذلك رياضياَ
اذا كان لدينا العددين a=5,b=10 تكون العملية كتالي
a=a*b
b=a/b
a=a/b
بعد ذلك تكون قيمة a=10,b=5
هي مطلوبة في جملة واحدة
لهذا يمكن كتابتها بهذا الشكلاقتباسنريد عمل swap بين عددين صحيحين بدون متغير ثالث وفي جملة واحدة فقط
a /= b = (a *=b) / b;
ولكن عملية الضرب بطيئة وعملية القسمة بطيئة أكثر منها , والأسرع استخدام العمليات المنطقية , والعملية xor تقوم بالغرض في وقت أقل
يمكن عمل الوظيفة نفسها باستخدام الجمع والطرح أيضا , فهي اسرع بكثير من عمليتي الضرب والقسمة
a -= b = (a +=b) - b;
شكرا للأخ Asm4all وللأخ NAE على المشاركة والحل صحيح وهذا حل كتبته انا
x = y + x - (y = x);
abofahad5515@hotmail.com
هذا الموضوع مغلق.