gpt4 book ai didi

java - 以均匀间距打印数组内容

转载 作者:搜寻专家 更新时间:2023-11-01 03:02:21 24 4
gpt4 key购买 nike

我有一个程序可以接受用户输入并打印许多回文素数(每行 10 个并且应该均匀分布)。我直接打印值并且工作正常,但数字间距不均匀。所以我决定将它们存储到一个数组中,希望它们能均匀地打印出来。但是现在没有打印任何值。有人可以指出我在哪里犯了错误吗?以下是部分代码:

public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.print("Print how many values? ");
int input = scan.nextInt();
int[] palPrimes = new int[input];
int count = 1, val = 2;

while(count <= input)
{
if(isPrime(val) && isPalindrome(val))
{
palPrimes[count-1] = val;
}
val++;
}

for(int i = 0; i < palPrimes.length; i++)
{
if(i % 10 == 0)
System.out.println();
System.out.print(palPrimes[i] + " ");
}
}

最佳答案

添加 val 时需要增加 count 否则循环永远不会终止。

if (isPrime(val) && isPalindrome(val)) 
{
palPrimes[count - 1] = val;
}
val++;

应该是这样的

if (isPrime(val) && isPalindrome(val)) 
{
palPrimes[count - 1] = val;
count++;
}
val++;

最后,为了数字的均匀间距,我建议你使用 formatting .类似的东西,

for (int i = 0; i < palPrimes.length; i++) {
if (i % 10 == 0)
System.out.println();
System.out.printf("% 5d", palPrimes[i]);
}

或者,正如 @m3ssym4rv1n 的评论中指出的那样, 一两个标签

System.out.print(palPrimes[i] + "\t");

第一个选项(printf)将右对齐;后者 (\t) 左对齐。

关于java - 以均匀间距打印数组内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32622179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com