Нужно вычислить сумму с помощью циклa for

169
28 января 2019, 13:20

задано натуральное число n, нужно вычислить сумму S = (-1)^n * (n+1)/(2n+1) с помощью циклa for

Answer 1

у вас n это целое число, а значит (n+1) и (2n+1) тоже целые числа. При делении вы получите в результате целое число (так как компилятор не может знать что вам нужно), т.е. результат будет ноль. Ваш желаемый результат должен иметь тип double, и нужно так и написать: ...double (n+1)/(2n+1)...

Вообшем это может выглядеть так:

int n;
cin >> n;
double s = 0;
for (int i = 1; i <= n; ++i) 
    s += pow(-1, i) * (double)(i + 1) / (2 * i + 1);        
cout << s;
Answer 2

Вы почему-то цикл делаете по i, а суммируете один и тот же член с n, да еще добавленной единицей. И еще зачем-то лишний плюс один дописали...

unsigned int n;
double s = 0.0;
cin >> n;
for (unsigned int i = 0; i <= n; ++i) {
    s += ((i % 2 == 0) ? 1 : -1) * (i + 1.0) / (2.0 * i + 1.0);
    }
cout << s << endl;
READ ALSO
Многопоточность в С++. В чем отличие pthread от std::thread?

Многопоточность в С++. В чем отличие pthread от std::thread?

В чем основные отличия posix threads и класса std::thread? В каком случае что выбрать и почему? Желательно, поподробнее

174
Умножение матриц по Винограду

Умножение матриц по Винограду

Пытаюсь сделать умножение матриц по Винограду, но как-то не очень получаетсяПрошу помощи у вас

210
C++ Матрица в классе

C++ Матрица в классе

Как поместить этот код в класс?

184
Как читать файл в C++ построчно?

Как читать файл в C++ построчно?

Нужно, чтобы программа читала только определенные строки в файле, например, 1 строку или 7, но не весь файл целиком

212