需要解决的问题:http://i62.tinypic.com/23rtieb.png
我有这个问题需要用Java来解决。但是我试过但是没能。这是我到目前为止所做的。
public class Cirlce {
public static void main(String[] args) {
int counter = 0;
double pi = 0;
final String piCharacter = "\u03C0";
double num = 10000;
int e = 0;
for (int i = 0; i < 10000; i++) {
// r^2 = x^2 + y^2
double dx = Math.random();
double dy = Math.random();
double r = Math.sqrt(dx * dx + dy * dy);
if (r < 1) {
counter++;
pi = 4 * counter / 1000;
}
e++;
if (e == counter) {
System.out.println(pi);
counter += 1000;
}
System.out.println("The Approximated Value Of " + piCharacter + " is: " + pi);
}
}
}
答案是我需要10个接近pi值的输出。
答案 0 :(得分:2)
这一行存在一个问题:
pi = 4 * counter / 1000;
4
,counter
和1000
都是int
,因此您在此处进行整数运算。您需要至少将其中一个值设为double
,例如:
pi = 4.0 * counter / 1000;
还有一些其他错误。例如,你为什么要做counter += 1000;
?清理代码并确保准确理解每个语句的作用。