สมมติว่าสถานการณ์ต่อไปนี้ -
เริ่มแรกบนแผ่นจดบันทึกมีอักขระ '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