Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ปัญหาคีย์บอร์ด 2 คีย์ใน JavaScript


สมมติว่าสถานการณ์ต่อไปนี้ -

เริ่มแรกบนแผ่นจดบันทึกมีอักขระ 'A' เพียงตัวเดียวเท่านั้น เราสามารถดำเนินการสองครั้งบนแผ่นจดบันทึกนี้สำหรับแต่ละขั้นตอน -


  • คัดลอกทั้งหมด − เราสามารถคัดลอกอักขระทั้งหมดที่มีอยู่ในแผ่นจดบันทึก (ไม่อนุญาตให้คัดลอกบางส่วน)

  • วาง − เราสามารถวางอักขระที่คัดลอกครั้งล่าสุดได้

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้ตัวเลข เรียกมันว่า num เป็นอาร์กิวเมนต์เดียว ฟังก์ชันของเราจำเป็นต้องคำนวณและส่งคืนจำนวนขั้นตอนขั้นต่ำ (คัดลอกทั้งหมดหรือวาง) ที่จำเป็นสำหรับการพิมพ์ 'A' จำนวนครั้ง

ตัวอย่างเช่น −

หากตัวเลขที่ป้อนคือ −

const num = 3;

จากนั้นผลลัพธ์ควรเป็น −

const output = 3;

เพราะขั้นตอนคือ −

  • คัดลอกทั้งหมด (ผลลัพธ์:'A')

  • วางทั้งหมด (ผลลัพธ์:'AA')

  • วางทั้งหมด (ผลลัพธ์:'AAA')

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const num = 3;
const minimumSteps = (num = 1) => {
   let [curr, copy, steps] = [1, 0, 0];
   while(curr != num){
      if((copy < curr) && ((num - curr) % curr) == 0) {
         copy = curr;
      }else{
         curr += copy;
      };
      steps += 1;
   };
   return steps;
};
console.log(minimumSteps(num));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

3