Решил задачу:
int _tmain(int argc, _TCHAR* argv[])
{ int i,z;
float x,s,n,q,y,m;
s=0;n=0;z=1;
for(i=0;i<10000;i++)
{
n=n+1.0;
x=1.0/(n*z);
s=s+x;
z=z*(-1);
}
cout<<s<<"\n";
//Б
s=0; n=2.0; x=0; y=0; m=1.0; q=0;
for (i = 1; i<5000; i++)
{
//чётные знаменатели
x = 1.0 / n;
s = s + x;
n = n + 2.0;
//нечётные знаменатели
y=1.0/m;
q=q+y;
m=m+2.0;
}
s = q - s;
cout << s<<"\n";
//В
s = 0; n = 10000; x=0; z = (-1);
for (i = 10000; i>0; i--)
{
x = (1.0 / n)*z;
s = s + x;
n = n - 1.0;
z = z * (-1);
}
cout << s << "\n";
//Г
s = 0; n = 10000; x=0; q=0; y=0; m=9999;
for (i = 5000; i>0; i--)
{
x = 1.0 / n;
s = s + x;
n = n - 2.0;
y = 1.0 / m;
q = q + y;
m = m - 2.0;
}
s = q - s;
cout << s <<"\n";
return 0;
}
Считает правильно, всё работает, но нужно определить у какого из вариантов подсчёта наибольшая точность вычислений, я вообще не понимаю каким образом это нужно сделать, помогите пожалуйста
И ещё нужно ответить на вопрос - Почему получаются разные результаты в данных вариантах, тоже не понимаю, прошу подскажите в чём тут дело, заранее огромное спасибо!
И прикладываю сам текст задачи для наглядности: