เราต้องเขียนฟังก์ชัน JavaScript ที่รับตัวเลข num เป็นอาร์กิวเมนต์เดียว ฟังก์ชันต้องสร้างอาร์เรย์ n สมาชิกตามกติกา:
arr[i] = (2 * i) + 1;
ดังนั้นถ้าตัวเลขนำเข้าคือ 5 อาร์เรย์จะเป็น:
const arr = [1, 3, 5, 7, 9];
ฟังก์ชันต้องคำนวณและคืนจำนวนขั้นตอนน้อยสุด เพื่อให้สมาชิกทั้งหมดในอาร์เรย์เท่ากัน
นิยามหนึ่งขั้นตอน: เลือกสองตัวเลขที่ต่างกันจากอาร์เรย์ บวก 1 ให้ตัวแรก และลบ 1 ให้ตัวที่สอง
สำหรับอาร์เรย์ข้างต้น ผลลัพธ์ควรเป็น:
const output = 6;
ตัวอย่างโค้ด
const num = 5;
const minimumOperations = (num = 1) => {
if(num === 1) {
return 0;
}
let arr = new Array(num);
let i = 0;
let res = 0;
while(i < num) {
arr[i] = (2 * i) + 1;
if(arr[i] < num) res += num - arr[i];
i++;
}
return res;
};
console.log(minimumOperations(num));
ผลลัพธ์
6