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

ผลรวมของอนุกรม 1² + 3² + 5² + ... + (2n-1)² ใน C++

ในปัญหานี้ เราได้รับตัวเลข n ของอนุกรม ภารกิจคือการหาผลรวมของอนุกรม 1² + 3² + 5² + ... + (2n-1)² สำหรับค่า n ที่กำหนด

ตัวอย่างเพื่อเข้าใจปัญหา

อินพุต −

n = 5

เอาต์พุต −

84

คำอธิบาย −

sum = 1² + 3² + 5² + 7² + 9² = 1 + 9 + 25 + 49 + 81 = 165

วิธีพื้นฐานในการแก้ปัญหาคือการใช้สูตรโดยตรงสำหรับผลรวมของอนุกรม

ตัวอย่างโปรแกรม (วิธีวนลูป)

#include <iostream>
using namespace std;

int calcSumOfSeries(int n) {
    int sum = 0;
    for (int i = 1; i <= n; i++)
        sum += (2*i-1) * (2*i-1);
    return sum;
}

int main() {
    int n = 5;
    cout << "The sum of series up to " << n << " is " << calcSumOfSeries(n);
    return 0;
}

เอาต์พุต

The sum of series up to 10 is 165

วิธีอีกวิธีหนึ่งคือการใช้สูตรทางคณิตศาสตร์เพื่อหาผลรวมของอนุกรม

ผลรวมคือ

1² + 3² + 5² + ... + (2n-1)² = n(2n-1)(2n+1)/3

ตัวอย่างโปรแกรม (วิธีสูตรคณิตศาสตร์)

#include <iostream>
using namespace std;

int calcSumOfSeries(int n) {
    return (n * (2 * n - 1) * (2 * n + 1)) / 3;
}

int main() {
    int n = 5;
    cout << "The sum of series up to " << n << " is " << calcSumOfSeries(n);
    return 0;
}

เอาต์พุต

The sum of series up to 5 is 165