ลำดับ 2, 22, 222, 2222, ... สามารถหาผลรวมได้จากสูตรทางคณิตศาสตร์:
Sum = (2/9) × [(10ⁿ - 1 - 9n) / 9] = 2(10ⁿ - 1 - 9n) / 81
การนำไปสูตร
Sum = 2 + 22 + 222 + ...
= 2[1 + 11 + 111 + ...]
= (2/9)[9 + 99 + 999 + ...]
= (2/9)[(10-1) + (100-1) + (1000-1) + ...]
= (2/9)[10 + 10² + 10³ + ... - n]
= (2/9)[(10ⁿ - 10)/9 - n]
= 2(10ⁿ - 1 - 9n) / 81
โค้ดตัวอย่าง
#include <stdio.h>
#include <math.h>
int main() {
int n = 3;
float sum = 2 * (pow(10, n) - 1 - 9 * n) / 81;
printf("sum is %f", sum);
return 0;
}
ผลลัพธ์
sum is 246.000000
หมายเหตุ: ตัวอย่างเดิมแสดง 879 ซึ่งอาจเป็นค่า n ต่างกัน