هناك روبوت في المستوى الإحداثي الديكارتي يقف عند النقطة (0,0)
اذا علمت ان الروبوت سيتحرك عدد N حركة
في الحركة رقم 1 يتحرك وحدة واحدة إلى اليمين موقعه الجديد هو (1,0)
في الحركة رقم 2 يتحرك وحدتين إلى الأعلى موقعه الجديد هو (1,2)
في الحركة رقم 3 يتحرك ثلاث وحدات إلى اليسار موقعه الجديد هو (-2,2)
في الحركة رقم 4 يتحرك أربع وحدات إلى الأسفل موقعه الجديد هو (-2,-2)
في الحركة رقم 5 يتحرك خمس وحدات إلى اليمين موقعه الجديد هو (3,-2)
وهكذا...
قم بإيجاد موقع الروبوت بعد N حركة
هذا حلي بإستخدام جافاسكريبت
و أضنها أسهل خوارزمية لأنني إستعملت بعض الحيل دون أن تصبح معقدة
تعطيه رقم N و يرجع لك الإحداثيات :
var a = prompt("Enter Number of N :"),
i = 0,
x = 0,
y = 0;
function oux(a) {
do {
i++;
if (i % 2 === 0) {
x = x;
} else if (i % 4 === 0 || (i + 1) % 4 === 0) {
x = x - i;
} else {
x = x + i;
}
if (i % 2 !== 0) {
y = y;
} else if (i % 4 === 0 || (i + 1) % 4 === 0) {
y = y - i;
} else {
y = y + i;
}
}
while (i < a);
return "for N= " + a + " : " + "( " + x + " , " + y + " )";
}
alert(oux(a));
التعليقات