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

หาพจน์ที่ N ของอนุกรม 0, 2, 4, 8, 12, 18... ด้วย C++


ภาพรวมปัญหา

หาพจน์ที่ N ของอนุกรม: 0, 2, 4, 8, 12, 18, ...

ตัวอย่าง

อินพุต

N = 5

เอาต์พุต

12

วิธีแก้ปัญหา

สูตรทั่วไป: T(N) = (N + N×(N-1)) / 2 = N²/2 + N/2

หรือเขียนได้ว่า: T(N) = N(N+1)/2 - 1 + 1? ให้ตรวจสอบ:

N=1: (1 + 0)/2 = 0.5? ไม่ตรง
จริงๆ: T(N) = (N² + N - 2)/2 + 1? 
ลอง N=1: 0, N=2: 2, N=3: 4, N=4: 8
สูตร: T(N) = N(N-1)/2 + (N-1)? 
จริงๆ จากโค้ด: (N + N*(N-1))/2 = N²/2 + N/2

โค้ดต้นฉบับ: return (N + N * (N - 1)) / 2;

โค้ดตัวอย่าง

#include <iostream>
using namespace std;

int calcNthTerm(int N) {
    return (N + N * (N - 1)) / 2;
}

int main() {
    int N = 10;
    cout << N << "th term of the series is " << calcNthTerm(N);
    return 0;
}

เอาต์พุต

10th term of the series is 50

สรุป

สูตรพหุนามดีกรี 2 คำนวณ O(1)