Хорошо, я новичок в программировании и всегда интересовался числами, поэтому я подумал, что могу попытаться создать код для генерации и печати «n» чисел числа Пи.
После небольшого исследования все, что я смог найти, - это способы вычисления числа Пи без использования встроенных функций, таких как Math.PI, но ничего в java, чтобы фактически вывести число Пи с числом цифр больше 16.
Код, который я быстро сделал, был таким
import java.io.*;
import java.lang.System;
import java.lang.Math;
import java.util.ArrayList;
import java.util.Scanner;
public class piDisplay {
public static void main (String args[]) {
Scanner scan = new Scanner(System.in);
ArrayList <Integer> piDigit = new ArrayList <Integer>();
double test = Math.PI;
System.out.print(test);
int numDigits = scan.nextInt();
double pi = 0;
for(int i = 0; i < numDigits; i++) {
pi += (1/Math.pow(16, (double)i))*(4/(double)((i*8)+1)-2/(double)((i*8)+4)-1/(double)((i*8)+5)-1/(double)((i*8)+6));
//adds each individual digit to an array
piDigit.add((int)((pi*Math.pow(10, i))%10));
System.out.println(pi);
System.out.println(piDigit.toString());
}
}
}
Он использует формулу BBP для вычисления числа пи, но я просто не знаю, как бы я распечатал более 16 цифр, если есть даже способ сделать это в java (вероятно, есть).
Любой вклад приветствуется, спасибо.




Вы можете использовать класс BigDecimal, чтобы обойти аппаратные ограничения, или создать свою собственную более конкретную задачу.