#include <stdio.h>
#define inverse_step_size 10

double differential_function(double y)
{
    return (1-y)/15;
}

double slope(double y)
{
	double k[4];
	k[0]=differential_function(y);
	k[1]=differential_function(y+k[0]/(2*inverse_step_size));
	k[2]=differential_function(y+k[1]/(2*inverse_step_size));
	k[3]=differential_function(y+k[2]/inverse_step_size);

	return (k[0]+2*k[1]+2*k[2]+k[3])/6;
}

int main(void)
{
	int i,j;
	double x=0,y=0;
	printf("(x,y)=(%3.0f,%16.16f)\n",x,y);
	for(j=0;j<100;j++) {
		x = 1.0 + (double)j;
		for(i=0;i<inverse_step_size;i++) {
			y += slope(y)/inverse_step_size;
		}
		printf("(x,y)=(%3.0f,%16.16f)\n",x,y);
	}
	return 0;
}