Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

แบ่งช่วงของตัวเลขเป็นจำนวนเฉพาะของช่วง JavaScript


สมมติว่าเรามีช่วงเวลาที่เริ่มต้นจาก 0 เสมอและสิ้นสุดที่จำนวนเต็มบวก n ให้แสดงช่วงเวลาด้วยอาร์เรย์แบบนี้ -

const interval = [0, n];

หรืออย่างง่ายๆ เนื่องจากเรารู้ว่าช่วงจะเริ่มต้นที่ 0 เสมอ ให้ระบุช่วงเวลาด้วยขีดจำกัดบนเท่านั้น

const interval = n;

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้ตัวเลขสองตัวเป็นอาร์กิวเมนต์ตัวแรกและตัวที่สอง

อาร์กิวเมนต์แรกแสดงถึงช่วงเวลาที่เริ่มต้นจาก 0 และสิ้นสุดที่ตัวเลขนั้น และตัวเลขที่สองเป็นตัวกำหนดจำนวนช่วงที่เท่ากัน (ถ้าเป็นไปได้) ที่เราต้องสร้างระหว่างช่วงเวลาจริง

ตัวอย่างเช่น หากอาร์กิวเมนต์อินพุตเป็น 3 และ 2

จากนั้นช่วงเวลาจริงคือ [0, 3] =[0, 1, 2, 3] และเราต้องแบ่งเป็น 2 ช่วงเท่าๆ กัน (ถ้าเป็นไปได้)

ดังนั้น สำหรับอินพุตเหล่านี้ เอาต์พุตควรเป็น −

const output = [
[0, 1],
[2, 3]
];

โปรดทราบว่าขีดจำกัดบนและล่างของช่วงจะเป็นจำนวนเต็มเสมอ

รหัสสำหรับสิ่งนี้จะเป็น −

ตัวอย่าง

const getIntervals = (interval, num) => {
   const size = Math.floor(interval / num);
   const res = [];
   for (let i = 0; i <= interval;
   i += size) {
      const a = i == 0 ? i : i += 1;
      const b = i + size > interval ? interval : i + size;
      if (a < interval){
         res.push([a, b]);
      };
   };
   return res;
};
console.log(getIntervals(3, 2));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

[
[0, 1],
[2, 3]
]