หาผลรวมของผลรวม (Sum of Sums) ของจำนวนธรรมชาติ n ตัวแรก คือ หาผลรวม 1 ถึง i สำหรับทุก i จาก 1 ถึง n แล้วนำมาบวกกัน
ตัวอย่าง n = 4
- Sum till 1 = 1
- Sum till 2 = 1+2 = 3
- Sum till 3 = 1+2+3 = 6
- Sum till 4 = 1+2+3+4 = 10
- Sum of Sums = 1+3+6+10 = 20
วิธีที่ 1: ใช้ลูป巢 (Inefficient)
#include <stdio.h>
int main() {
int n = 4, sum = 0, s = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) s += j;
sum += s;
}
printf("sum of sums till %d is %d", n, sum);
return 0;
}
วิธีที่ 2: ใช้สูตรคณิตศาสตร์ (Efficient)
Sum = n(n+1)(n+2) / 6 (หมายเหตุ: สูตรเดิมเขียนผิด ควรเป็นหาร 6 ไม่ใช่ 2)
#include <stdio.h>
int main() {
int n = 4;
int sum = (n * (n + 1) * (n + 2)) / 6;
printf("sum of sums till %d is %d", n, sum);
return 0;
}
ผลลัพธ์
the sum of sum of natural number till 4 is 20