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

การนับจำนวนตัวเลขที่หารด้วยตัวเลขกำหนดลงตัวในช่วงใน JavaScript

ปัญหา

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

ตัวอย่าง

โค้ดตัวอย่างด้านล่าง:

const range = [6, 57];
const num = 3;
const findDivisibleCount = (num = 1, [l, h]) => {
  let count = 0;
  for (let i = l; i <= h; i++) {
    if (i % num === 0) {
      count++;
    }
  }
  return count;
};
console.log(findDivisibleCount(num, range));

ผลลัพธ์

18

คำอธิบายเพิ่มเติม

นับตัวเลขใน [6,57] ที่หาร 3 ลงตัว: 6,9,12,...,57 → (57-6)/3 + 1 = 18 ตัว สามารถคำนวณ O(1) ได้: `Math.floor(h/num) - Math.ceil(l/num) + 1`