помогите пожалуйста решить задачку, нужно найти суму ряду z=1-1/3+1/5-1/7+1/9... с точностью 10^-6 и сравнить z с pi/4
помогите пожалуйста решить задачку, нужно найти суму ряду z=1-1/3+1/5-1/7+1/9... с точностью 10^-6 и сравнить z с pi/4
Код:
#include <iostream>
using namespace std;
int main() {
double z = 1.0, sign = -1.0, x = 0.0;
for(int i = 3; ; i+=2) {
if((x = 1.0/i, x) < 1.0e-6) break;
z += sign*x;
sign *= -1.0;
}
cout << z << endl;
return 0;
}
using namespace std;
int main() {
double z = 1.0, sign = -1.0, x = 0.0;
for(int i = 3; ; i+=2) {
if((x = 1.0/i, x) < 1.0e-6) break;
z += sign*x;
sign *= -1.0;
}
cout << z << endl;
return 0;
}
Другой вариант с учетом, что число иттераций вполне прогнозируемо:
Код:
#include <iostream>
int main() {
const int im = 1000*1000; //миллион; 1/im = 10^-6
double z = 1.0, sign = -1.0;
for(int i = 3; i < im; i += 2) {
z += sign/i;
sign *= -1.0;
}
std::cout << "z = " << z << std::endl;
const double pi = 3.14159265359; //точность превышающая нашу
//разница с четвертью пи
std::cout << "z - pi/4 = " << z - pi/4 << std::endl;
return 0;
}
int main() {
const int im = 1000*1000; //миллион; 1/im = 10^-6
double z = 1.0, sign = -1.0;
for(int i = 3; i < im; i += 2) {
z += sign/i;
sign *= -1.0;
}
std::cout << "z = " << z << std::endl;
const double pi = 3.14159265359; //точность превышающая нашу
//разница с четвертью пи
std::cout << "z - pi/4 = " << z - pi/4 << std::endl;
return 0;
}