Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

หาพจน์ที่ N ของอนุกรม 1, 5, 32, 288... ด้วย C++


ภาพรวมปัญหา

หาพจน์ที่ 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