#include <stdio.h>
typedef double real;
real sine( real x ){
real s1, s=x, r=x, n=2;
x *= x;
do{ s1 = s;
s += r=-r*x/(n*n+n);
n += 2;
} while( s != s1 );
return s;}
int main() {
real a=0, b= 1;
volatile real ostatniX, x, h;
int n, i;
for( n=10; n<=1000000000; n *= 10 ) {
h=(b-a)/n;
x=a;
for( i=0; i<=n; i++ ) {
// printf("%0.15f %0.15f %f0.15\n" , x, sine(x), sine(a + i*h ) );
ostatniX = x;
x += h; }
x = ostatniX;
printf("%12d %0.15f %0.15f %0.15f\n" , n, x, sine(x), sine(a + n*h ));
}
return 0;
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIGRvdWJsZSByZWFsOwoKcmVhbCBzaW5lKCByZWFsIHggKXsKICAgcmVhbCBzMSwgcz14LCByPXgsIG49MjsKICAgeCAqPSB4OwogICBkb3sgICBzMSA9IHM7CiAgICAgIHMgKz0gcj0tcip4LyhuKm4rbik7CiAgICAgIG4gKz0gMjsKICAgfSB3aGlsZSggcyAhPSBzMSApOwogICByZXR1cm4gczt9CiAgICAgIAppbnQgbWFpbigpIHsKICAgCiAgIHJlYWwgYT0wLCBiPSAxOwogICB2b2xhdGlsZSByZWFsIG9zdGF0bmlYLCB4LCBoOwogICBpbnQgbiwgaTsKICAgCiAgIGZvciggbj0xMDsgbjw9MTAwMDAwMDAwMDsgbiAqPSAxMCApIHsKICAgICAgaD0oYi1hKS9uOwogICAgICB4PWE7CiAgICAgIGZvciggaT0wOyBpPD1uOyBpKysgKSB7CiAgICAgICAgIC8vIHByaW50ZigiJTAuMTVmICUwLjE1ZiAlZjAuMTVcbiIgLCAgICB4LCBzaW5lKHgpLCBzaW5lKGEgKyBpKmggKSApOwogICAgICAgICBvc3RhdG5pWCA9IHg7CiAgICAgICAgIHggKz0gaDsgfQogICAgICB4ID0gb3N0YXRuaVg7CiAgICAgIHByaW50ZigiJTEyZCAgJTAuMTVmICUwLjE1ZiAlMC4xNWZcbiIgLCBuLCB4LCBzaW5lKHgpLCBzaW5lKGEgKyBuKmggKSk7CiAgIH0KIAogICByZXR1cm4gMDsKfQp9Cg==