ภาพรวมปัญหา
หาผลรวมของอนุกรมเลขสามเหลี่ยม (Triangular Numbers): 1, 3, 6, 10, ...
พจน์ที่ n: Tₙ = n(n+1)/2
ตัวอย่าง
Input: n = 4 Output: 20 Explanation: T₁+T₂+T₃+T₄ = 1+3+6+10 = 20
วิธีแก้ปัญหา
วิธีลูป - O(n)
for (int i=1; i<=n; i++)
sum += i*(i+1)/2;
วิธีสูตรคณิตศาสตร์ - O(1)
ผลรวม = ⅙ n(n+1)(n+2)
ตัวอย่างโค้ด C++
#include <iostream>
using namespace std;
int calcSeriesSum(int n) {
return (n * (n+1) * (n+2)) / 6;
}
int main() {
int n = 6;
cout << "Sum of triangular numbers = " << calcSeriesSum(n);
return 0;
}
ผลลัพธ์
Sum of the series 1, 3, 6, 10 ... (Triangular Numbers) is 56