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

ค้นหาองค์ประกอบที่ n ของลำดับที่เพิ่มขึ้นโดยใช้ JavaScript


ปัญหา

พิจารณาลำดับที่เพิ่มขึ้นซึ่งกำหนดไว้ดังนี้ -

  • หมายเลข seq(0) =1 คือหมายเลขแรกในลำดับ
  • สำหรับแต่ละ x ในลำดับ ดังนั้น y =2 * x + 1 และ z =3 * x + 1 จะต้องอยู่ในลำดับด้วย
  • ไม่มีตัวเลขอื่นในลำดับ

ดังนั้น เทอมแรกๆ ของลำดับนี้จะเป็น −

[1, 3, 4, 7, 9, 10, 13, 15, 19, 21, 22, 27, ...]

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

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const num = 10;
const findNth = n => {
   let seq = [1], x = 0, y = 0
   for (let i = 0; i < n; i++) {
      let nextX = 2 * seq[x] + 1, nextY = 3 * seq[y] + 1
      if (nextX <= nextY) {
         seq.push(nextX)
         x++
         if (nextX == nextY)
            y++
         } else {
            seq.push(nextY)
            y++
      }
   }
   return seq[n];
}
console.log(findNth(num));

ผลลัพธ์

22