/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Main
{
{
int a=2499;
int b= 100;
//System.out.println("Testing method triangleBelow with goal "+a+" and last "+b+"");
int resInt=triangleBelow(a,b);
//System.out.println("The result of triangleBelow is "+resInt+"");
//System.out.println("Testing method sumReciprocals with n equals "+b+"");
double resDbl= sumReciprocals(b);
//System.out.println("The result of sumReciprocals is "+resDbl+"");
int n
= (int)(Math.
random()*250+50); double myEstimate= estimatePi(n);
System.
out.
println("After using up to "+n
+" terms, the estimated value of pi is "+myEstimate
+""); }
public static int triangleBelow(int goal, int last)//Needs Tested, Worked
{
int sum = 0;
for(int j=0;j<last; j++)
{
sum+=j;
if(sum>=goal)
{
break;
}
}
return sum;
}
public static double sumReciprocals(int n)//Needs tested, Worked
{
double sum= 0;
for(int j=1; j<n+1; j++)
{
sum+=1.0/j;
}
return sum;
}
public static double estimatePi(int n) //Bonus
{
double sign= 1.0;
double sum=0;
for(int j=0;j<n; j++)
{
sum+= sign/(2*j+1);
sign*=-1;
if(sum*4>=3.14 && sum*4<=3.15)
break;
}
return sum*4;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgTWFpbgp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlpbnQgYT0yNDk5OwoJCWludCBiPSAxMDA7CgkJLy9TeXN0ZW0ub3V0LnByaW50bG4oIlRlc3RpbmcgbWV0aG9kIHRyaWFuZ2xlQmVsb3cgd2l0aCBnb2FsICIrYSsiIGFuZCBsYXN0ICIrYisiIik7CgkJaW50IHJlc0ludD10cmlhbmdsZUJlbG93KGEsYik7CgkJLy9TeXN0ZW0ub3V0LnByaW50bG4oIlRoZSByZXN1bHQgb2YgdHJpYW5nbGVCZWxvdyBpcyAiK3Jlc0ludCsiIik7CgkJLy9TeXN0ZW0ub3V0LnByaW50bG4oIlRlc3RpbmcgbWV0aG9kIHN1bVJlY2lwcm9jYWxzIHdpdGggbiBlcXVhbHMgIitiKyIiKTsKCQlkb3VibGUgcmVzRGJsPSBzdW1SZWNpcHJvY2FscyhiKTsKCQkvL1N5c3RlbS5vdXQucHJpbnRsbigiVGhlIHJlc3VsdCBvZiBzdW1SZWNpcHJvY2FscyBpcyAiK3Jlc0RibCsiIik7CgkJaW50IG49IChpbnQpKE1hdGgucmFuZG9tKCkqMjUwKzUwKTsKCQlkb3VibGUgbXlFc3RpbWF0ZT0gZXN0aW1hdGVQaShuKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oIkFmdGVyIHVzaW5nIHVwIHRvICIrbisiIHRlcm1zLCAgdGhlIGVzdGltYXRlZCB2YWx1ZSBvZiBwaSBpcyAiK215RXN0aW1hdGUrIiIpOwoJfQoJcHVibGljIHN0YXRpYyBpbnQgdHJpYW5nbGVCZWxvdyhpbnQgZ29hbCwgaW50IGxhc3QpLy9OZWVkcyBUZXN0ZWQsIFdvcmtlZAoJewoJCWludCBzdW0gPSAwOwogICAgCWZvcihpbnQgaj0wO2o8bGFzdDsgaisrKQogICAgCXsKICAgIAkJc3VtKz1qOwogICAgCQlpZihzdW0+PWdvYWwpCiAgICAJCXsKICAgIAkJCWJyZWFrOwogICAgCQl9CiAgICAJfQoJcmV0dXJuIHN1bTsKCX0KCXB1YmxpYyBzdGF0aWMgZG91YmxlIHN1bVJlY2lwcm9jYWxzKGludCBuKS8vTmVlZHMgdGVzdGVkLCBXb3JrZWQKCXsKICAgIAlkb3VibGUgc3VtPSAwOwogICAgCWZvcihpbnQgaj0xOyBqPG4rMTsgaisrKQogICAgCXsKICAgIAkJc3VtKz0xLjAvajsKICAgIAl9CglyZXR1cm4gc3VtOwoJfQoJcHVibGljIHN0YXRpYyBkb3VibGUgZXN0aW1hdGVQaShpbnQgbikgLy9Cb251cwogIHsKICAgIAlkb3VibGUgc2lnbj0gMS4wOwogICAgCWRvdWJsZSBzdW09MDsKICAgIAlmb3IoaW50IGo9MDtqPG47IGorKykKICAgIAl7CiAgICAJCXN1bSs9IHNpZ24vKDIqaisxKTsKICAgIAkJc2lnbio9LTE7CiAgICAJCWlmKHN1bSo0Pj0zLjE0ICYmIHN1bSo0PD0zLjE1KQogICAgCQkJYnJlYWs7CgkJfQoJcmV0dXJuIHN1bSo0OwkKICB9Cn0=