首页 > 解决方案 > 计算具有给定精度的序列的总和

问题描述

#include <iostream>
#include <cstring>
using namespace std;
int main() {
    system("chcp 1251>nul");
    int i = 1;
    double n;
    cin >> n;
    double eps = 0.00001;
    double sum = 0;
    double lastElementofSequence = 1;
    do {
        sum += lastElementofSequence;
        lastElementofSequence *= pow(9,i)/pow(2*n+1,i);
        i++;
    } while (fabs(lastElementofSequence) > eps);
    cout << sum << endl;
    system("pause>nul");
    return 0;
}

在此处输入图像描述

这就是问题所在,我无法弄清楚如何通过初步找到下一项来解决它!,而且不是每次都完整地枚举分子和分母。代码从上面,但感觉有些东西是不好,我会感谢审查,对于这么愚蠢的问题感到抱歉,因为我刚开始学习,我想了解如何计算这样的金额,因为简单的例子更容易

标签: c++algorithm

解决方案


在此处输入图像描述

#include <iostream>
#include <cstring>
using namespace std;
int main() {
    system("chcp 1251>nul");
    int i = 1;
    double x;
    cin >> x;
    if (abs(x) >= 1) { cout << "The series is divergent"; }
    else {
    double eps = 0.000001;
    double sum = 0;
    double lastElementOfSequence=1;
    do {
        sum += lastElementOfSequence;
        lastElementOfSequence *= -1 * x * (2 * i + 3) / (2 * i);
         i++;
    } while (fabs(lastElementOfSequence) > eps);
    cout.precision(17);
    cout << "sum=" << sum << endl;
    }
    system("pause>nul");
    return 0;
}

我是否正确解决了这个问题


推荐阅读