ปัญหา
เราต้องเขียนฟังก์ชัน JavaScript ที่รับจำนวนเต็ม n และคืนค่า:
- จำนวนเต็ม k ถ้า n เป็นจำนวนกำลังสองสมบูรณ์ ที่ k × k = n
- ช่วง (k, k+1) ที่ k × k < n และ n < (k+1) × (k+1)
ตัวอย่าง
โค้ดตัวอย่างด้านล่าง:
const num = 83;
const squareRootRange = (num = 1) => {
const exact = Math.sqrt(num);
if (exact === Math.floor(exact)) {
return exact;
} else {
return [Math.floor(exact), Math.ceil(exact)];
}
};
console.log(squareRootRange(num));
ผลลัพธ์
[9, 10]
คำอธิบายเพิ่มเติม
83 ไม่ใช่กำลังสองสมบูรณ์ รากที่สองประมาณ 9.11 อยู่ระหว่าง 9 และ 10 (9²=81, 10²=100) โค้ดตรวจสอบว่า sqrt เป็นจำนวนเต็มหรือไม่