gpt4 book ai didi

java - 程序输出中的间距错误

转载 作者:行者123 更新时间:2023-12-02 09:23:39 25 4
gpt4 key购买 nike

“编写一个程序,打印以下值的表格(ln n)、n、n *(ln n)、n2、n3 和 2n,其中 n = 16、32、64、...、2048。使用制表符('\t' 字符)排列列。

这就是任务。但是,在使用\t 时,输出的间距不正确。值之间的间距不均匀,并且某些值向右移动。我该如何解决这个问题?

public class Main {
public static void main(String[] args) {

for (int n = 16; n<2049; n*=2){
System.out.println(Math.log(n) +"\t"+ n + "\t"+ (Math.log(n)*n)+"\t"+Math.pow(n,2)+"\t"+Math.pow(n,3)+"\t"+Math.pow(2,n)+"\t");
}
}
}

最佳答案

好吧,制表符很好,但请记住,它们可能被制表符标记为 8 个空格,并且当我运行此代码时,会将 double 打印为比这更多的数字。链接的答案解释了如何将数字格式化为更少的位置。

Related Stack Overflow Question

我个人会使用带有格式字符串的 System.out.printf。

您可以使用此格式字符串。请注意,我添加了空格以提高可读性 - 一旦您满意,您最终会希望将其删除。

public class Main {
public static void main(String[] args) {

for (int n = 16; n<2049; n*=2){
//System.out.println(Math.log(n) +"\t"+ n + "\t"+ (Math.log(n)*n)+"\t"+Math.pow(n,2)+"\t"+Math.pow(n,3)+"\t"+Math.pow(2,n)+"\t");
System.out.printf( "%12.5f\t %6d\t %12.5f\t %14.0f\t %14.0f\t %16.0f\n",
Math.log(n), n,
Math.log(n)*n,
Math.pow(n,2),
Math.pow(n,3),
Math.pow(2,n));
}
}
}

这并不完美,因为最后一列变得非常大非常快。但我最终得到这样的输出:

 2.77259         16      44.36142               256            4096             65536
3.46574 32 110.90355 1024 32768 4294967296
4.15888 64 266.16852 4096 262144 18446744073709552000
4.85203 128 621.05987 16384 2097152 340282366920938460000000000000000000000
5.54518 256 1419.56543 65536 16777216 115792089237316200000000000000000000000000000000000000000000000000000000000000
6.23832 512 3194.02221 262144 134217728 13407807929942597000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
6.93147 1024 7097.82713 1048576 1073741824 Infinity
7.62462 2048 15615.21968 4194304 8589934592 Infinity

关于java - 程序输出中的间距错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58494741/

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