好的,制表符很好,但请记住,它们可能被标记为 8 个空格,而当我运行这段代码时,它会将你的双打打印到比这更多的数字。链接的答案解释了如何将您的数字格式化为更少的位置。
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