تحدي برمجي[003][سهل]: كيف تجد الروبوت

  • afaki

هناك روبوت في المستوى الإحداثي الديكارتي يقف عند النقطة (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));