Я новичок в программировании,нужно написать цикл в котором сумма будет считаться как 1-1/2+1/3-1/4+1/5-1/6 и т.д,не совсем понимаю как менять знак с + на - в цикле
using namespace std;
int main() {
int a;
int k = 0;
float sum = 0;
cout << "Input A(A>1):"; cin >> a;
while (sum < a) {
k++;
sum += -1.0 * (-1.0 / k);
}
sum = sum - 1.0 / k;
k = k - 1;
cout << "k:" << k << endl;
cout << "sum:" << sum << endl;
return 0;
}
А что ж вы сумму сравниваете, а не последний член? Тем более у вас вообще бред - a>1
, так что считаться у вас будет до бесконечности - ваша знакопеременная сумма же никогда не превысит 1, сколько ни суммируй!
Считают такие вещи или до достижения очередным членом ряда (абсолютного) значения, меньшего какой-то погрешности, или до определенного члена ряда. В вашем случае это все равно, ибо из 1/N < eps можно задавать и N, и eps.
Зададим N.
double sign = 1, sum = 1;
for(int n = 2; n < N; ++n)
sum += (sign*=-1)/n;
Все.
Можно и проще:
sum += (sign=-sign)/n;
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Найти произведение элементов одномерного массива, состоящего из N элементовРазмер массива и его элементы вводятся с клавиатуры
пишу интерпретатор командЕсть входной файл, в котором даны инструкции вида:
нужно значение из регистра edx перенести в массив символовНе знаю как исправить конфликт операндов
Какой метод поиска минимума функции лучше всего использовать для такой задачи: Есть функции двух, трёх переменных и нужно найти минимальное...