Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การคืนค่าช่วงหรือตัวเลขที่ระบุรากที่สองของตัวเลขใน JavaScript

ปัญหา

เราต้องเขียนฟังก์ชัน 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 เป็นจำนวนเต็มหรือไม่