ภาพรวมปัญหา
หาพจน์ที่ N ของอนุกรม: 1, 5, 32, 288, ...
ตัวอย่าง
อินพุต
N = 4
เอาต์พุต
288
คำอธิบาย
4⁴ + 3³ + 2² + 1¹ = 256 + 27 + 4 + 1 = 288
วิธีแก้ปัญหา
สูตรทั่วไป: T(N) = Σᵢ₌₁ᴺ iⁱ (ผลรวมของ i ยกกำลัง i)
หมายเหตุ: โค้ดต้นฉบับมีข้อผิดพลาด (คำนวณ factorial แทน) โค้ดด้านล่างแก้ไขแล้ว
โค้ดตัวอย่าง (แก้ไขแล้ว)
#include <iostream>
#include <cmath>
using namespace std;
int calcNthTerm(int N) {
long long sum = 0;
for (int i = 1; i <= N; i++) {
sum += pow(i, i);
}
return sum;
}
int main() {
int N = 8;
cout << N << "th term of the series is " << calcNthTerm(N);
return 0;
}
เอาต์พุต
8th term of the series is 17650828
สรุป
อนุกรมนี้คือผลรวมของ i^i ต้องใช้ long long เพื่อป้องกัน overflow