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

การหาผลรวมตัวเลขในแถวที่ n ของสามเหลี่ยมเพิ่มขึ้นใน JavaScript

สามเหลี่ยมเพิ่มขึ้น (Increasing Triangle)

สำหรับปัญหานี้ สมมติว่าสามเหลี่ยมเพิ่มขึ้นมีรูปแบบดังนี้:

  1
  2 3
  4 5 6
  7 8 9 10

ปัญหา

เราต้องเขียนฟังก์ชัน JavaScript ที่รับตัวเลข n เข้ามา และคืนค่าผลรวมของตัวเลขในแถวที่ n ของสามเหลี่ยมเพิ่มขึ้น

ตัวอย่าง

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

const num = 15;
const rowSum = (num = 1) => {
  const arr = [];
  const fillarray = () => {
    let num = 0;
    for (let i = 1; i <= 10000; i++) {
      const tempArr = [];
      for (let j = 0; j < i; j++) {
        num++;
        tempArr.push(num);
      }
      arr.push(tempArr);
    }
  };
  fillarray();
  return arr[num - 1].reduce((a, b) => a + b, 0);
};
console.log(rowSum(num));

ผลลัพธ์

1695

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

สามารถคำนวณได้โดยตรงด้วยสูตรคณิตศาสตร์: ตัวเลขแรกของแถวที่ n คือ n(n-1)/2 + 1 และตัวเลขสุดท้ายคือ n(n+1)/2 ผลรวมของแถวที่ n = n × (first + last) / 2 = n × (n² + 1) / 2 ซึ่งรวดเร็วกว่าการสร้างอาร์เรย์มาก