Проблема с циклом в плюсах
Я в плюсах новенький, по этому не понимаю в чем проблема. Есть вот такая задачка с циклом.
int i;
long double n;
cout << "Введите n: ";
cin >> n;
double S;
S = - 1/(1+1);
for(i = 0; i <= n; i++){
if (i % 2 == 0 ){
S -= 1/(i+i*(i-1));
} else {
S += 1/(i+i*(i-1));
}
}
cout << S << endl;
getch();
return 0;
Дебаггер показывает ошибку на строку после "if", а при работе пишет:
Floating point exception (core dumped)
Объясните кто-то, в чем проблема
Ответы (2 шт):
Автор решения: Qwertiy
→ Ссылка
Должно быть как-то так:
double s=0, o=1, a=1, x;
unsigned i, n;
cin >> n >> x;
for (i=1; i<=n; ++i)
s += (o=-o) / (((a*=i)+i)*x);
cout << s;
А у тебя:
- Деление целочисленное
- Формула неправильная
- Потерялся
x
Автор решения: Harry
→ Ссылка
У вас очень странное задание. В первом члене x вообще нет, во втором и далее - просто x, без степени. Очень слабо верится, что все так и есть.
Но если так... То достаточно написать
double x;
cin >> x;
cout << -0.5-0.25/x;
Если же потеряны степени и при (2+2) просто x, потом x^2, при (24+6) - x^3, то
cout << -0.5+0.25/x;
У вас же надо найти сумму, а в ней предел не указан...
Если уточните задачу - можно будет написать и более точный ответ...
