Вчера начал изучать Java. Поскольку я знаю другие языки программирования, мне легче изучать Java. Это довольно круто, на самом деле. Я все еще предпочитаю Python :) Как бы то ни было, я написал эту программу для вычисления числа пи на основе алгоритма (пи = 4/1 - 4/3 + 4/5 - 4/7....), и я знаю, что есть более эффективные способы вычисления пи. Как мне это сделать?
import java.util.Scanner;
public class PiCalculator
{
public static void main(String[] args)
{
int calc;
Scanner in = new Scanner(System.in);
System.out.println("Welcome to Ori's Pi Calculator Program!");
System.out.println("Enter the number of calculations you would like to perform:");
calc = in.nextInt();
while (calc <= 0){
System.out.println("Your number cannot be 0 or below. Try another number.");
calc = in.nextInt();
}
float a = 1;
float pi = 0;
while (calc >= 0) {
pi = pi + (4/a);
a = a + 2;
calc = calc - 1;
pi = pi - (4/a);
a = a + 2;
calc = calc - 1;
}
System.out.println("Awesome! Pi is " + pi);
}
}
Результат этого кода после 1 000 000 вычислений по-прежнему равен 3,1415954. ДОЛЖЕН быть более эффективный способ сделать это.
Спасибо!
float
для каждого термина, тем самым накапливая ошибки округления. Это не даст вам точного результата. - person Alex Salauyou   schedule 20.08.2015