Задача c++. Найдите величину s=(1+X)^m

Приложения:

Аноним: Когда считать, что нужная точность достигнута?
galinacyzz: Больше нет условий
Аноним: Ничего не объясняли, подобные задачки не решали...
galinacyzz: И там еще в конце не n-m+1, а m-n+1
galinacyzz: Нормальное условие в следующей задаче
Аноним: Ещё раз переспрошу: Вам никто, нигде, никогда не объяснял как определить точность?
galinacyzz: Нет
Аноним: И никогда подобные задачи не задавали?
galinacyzz: Нет

Ответы

Ответ дал: Segrif
0
/*
заданная точность гарантируется признаком Лейбница сходимости ряда
*/

#include<iostream>
using namespace std;

double abs(double x){
    return x < 0 ? -x : x;
}

int main(){
    double x,m,t,s,r;
    int n = 0;
    cin >> x >> m >> t;
    t = abs(t);
    if(abs(x) > 1 && abs(m) - int(m) != 0 || (x == -1 && m < 0)){
        cout << "No convergence" << endl;
        return -1;
    }
    s = r = 1;
    while(m + 1 > n || abs(r) > t){
        n++;
        s += r *= x*(m+1-n)/n;
    }
    cout << s;
    return 0;
}
Вас заинтересует