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

0 голосов
30 просмотров

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


image

Информатика (2.7k баллов) | 30 просмотров
0

Когда считать, что нужная точность достигнута?

0

Больше нет условий

0

Ничего не объясняли, подобные задачки не решали...

0

И там еще в конце не n-m+1, а m-n+1

0

Нормальное условие в следующей задаче

0

Ещё раз переспрошу: Вам никто, нигде, никогда не объяснял как определить точность?

0

Нет

0

И никогда подобные задачи не задавали?

0

Нет

Дан 1 ответ
0 голосов

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

#include
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;<br>        return -1;
    }
    s = r = 1;
    while(m + 1 > n || abs(r) > t){
        n++;
        s += r *= x*(m+1-n)/n;
    }
    cout << s;<br>    return 0;
}

(8.5k баллов)