ในปัญหานี้ เราได้รับ N งานคือหาผลรวม Series: 1 + 22 + 333 + 4444 + ... จน N พจน์
ตัวอย่าง
Input: N = 4 Output: 4800
1 + 22 + 333 + 4444 = 4800
การ導出สูตร (Mathematical Derivation)
พจน์ที่ k = k × (111...1 k ตัว) = k × (10ᵏ - 1)/9
Sum = Σ[k×(10ᵏ-1)/9] = 1/9 × [Σ(k×10ᵏ) - Σ(k)]
หลังจัดรูปได้สูตรปิด:
Sum = [10^(N+1) × (18N - 2) - 81N² - 81N + 20] / 1458
ตัวอย่างโค้ด
#include <iostream>
#include <cmath>
using namespace std;
long long calcSumNTerms(int n) {
long long term1 = (18LL * n - 2) * pow(10, n + 1);
long long term2 = 81LL * n * n + 81LL * n - 20;
return (term1 - term2) / 1458;
}
int main() {
cout << calcSumNTerms(5); // 60355
return 0;
}
ผลลัพธ์
60355
(1 + 22 + 333 + 4444 + 55555 = 60355)