作为一个入门项目,我正在编写一个写出pi位数的代码。该代码提示输入一个int,并打印出使用预定字符串的pi的许多小数位。问题在于每个单独的数字都位于单独的行上,如下所示:
3。1个41个59
该代码使用了一个for循环,该循环以扫描仪给定的索引结尾。它一次打印一个字符。我正在努力寻找一种方法来使代码分别打印pi的十位数子串,每个子串都在自己的行上,这意味着将像这样打印26位数:
循环用于数字计数器,因此我想保留它。在字符串中加上“ / n”以使空格中断计数系统,因为这些字符也会被计数和打印,从而使该选项无效。到目前为止,我还没有其他想法可以解决此问题。如果您知道用这种方式打印的方法,请告诉我。我的代码在下面,请随时复制并进行实验,如果您决定在某个地方使用它,请相信我。3。14159265358979323846264338
这是两组,每组十个,第三组包含其余六个。我正在努力将字符串打印分为十组,即使给定索引不是十的倍数,它也仍然在给定索引处停止打印。另外,旧代码中的for
import java.util.Scanner;
public class PiWriter {
public static void main(String[] args) {
final String pi = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679";
Scanner theScanner = new Scanner(System.in);
System.out.println("How many decimal places of pi do you want to see?\nEnter an integer less than or equal to 100");
int stopAt = theScanner.nextInt();
char currentChar;
int num0 = 0;
int num1 = 0;
int num2 = 0;
int num3 = 0;
int num4 = 0;
int num5 = 0;
int num6 = 0;
int num7 = 0;
int num8 = 0;
int num9 = 0;
//Causes the code to ignore the "3." at the start.
stopAt = stopAt + 2;
for (int loopNum = 0; loopNum < stopAt; loopNum++) {
System.out.println(pi.charAt(loopNum));
currentChar = pi.charAt(loopNum);
//This counts how many times a digit occurs.
switch (currentChar) {
case '0':
num0++;
break;
case '1':
num1++;
break;
case '2':
num2++;
break;
case '3':
num3++;
case '4':
num4++;
break;
case '5':
num5++;
break;
case '6':
num6++;
break;
case '7':
num7++;
break;
case '8':
num8++;
break;
case '9':
num9++;
break;
default:
break;
}
}
//Further ignores "3."
num3--;
//Corrects number for message.
stopAt = stopAt - 2;
System.out.println("Successfully printed first " + stopAt + " decimal places of pi.\nShow digit count?\nY/N");
theScanner.nextLine();
char response = theScanner.nextLine().charAt(0);
if (response == 'y'||response == 'Y') {
//This displays how many times each digit occurred.
if (num0 == 1) {
System.out.println("1 zero");
}
else {
System.out.println(num0 + " zeroes");
}
if (num1 == 1) {
System.out.println("1 one");
}
else {
System.out.println(num1 + " ones");
}
if (num2 == 1) {
System.out.println("1 two");
}
else {
System.out.println(num2 + " twos");
}
if (num3 == 1) {
System.out.println("1 three");
}
else {
System.out.println(num3 + " threes");
}
if (num4 == 1) {
System.out.println("1 four");
}
else {
System.out.println(num4 + " fours");
}
if (num5 == 1) {
System.out.println("1 five");
}
else {
System.out.println(num5 + " fives");
}
if (num6 == 1) {
System.out.println("1 six");
}
else {
System.out.println(num6 + " sixes");
}
if (num7 == 1) {
System.out.println("1 seven");
}
else {
System.out.println(num7 + " sevens");
}
if (num8 == 1) {
System.out.println("1 eight");
}
else {
System.out.println(num8 + " eights");
}
if (num9 == 1) {
System.out.println("1 nine");
}
else {
System.out.println(num9 + " nines");
}
}
}
}
作为一个入门项目,我正在编写一个写出pi位数的代码。该代码提示输入一个int,并打印出使用预定字符串的pi的许多小数位。问题是...
您可以通过做一些数学运算,几个基本循环以及使用print
与println
来避免计算逻辑。首先,我将在此处定义使用的变量:
尝试使用System.out.print
代替System.out.println
。
以下内容使用Math.PI创建Double PI的String表示形式。然后,我们使用String#indexOf确定小数点在该字符串中的位置。然后,我们要求使用Scanner查看小数位数。假设输入是一个非负整数,我们尝试使用初始索引“”查找字符串PI的子字符串。和其余数字。