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