Проблема с циклом в плюсах

Я в плюсах новенький, по этому не понимаю в чем проблема. Есть вот такая задачка с циклом.

скриншот формулы

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;

У вас же надо найти сумму, а в ней предел не указан...

Если уточните задачу - можно будет написать и более точный ответ...

→ Ссылка