public static void main(String[] args) {
int line=8;
for(int i=1;i<=line;i++){
for(int j=0;j<line-i;j++){//用来输出制表符的。因为数字有123位的,用空格不整齐
System.out.print("\t");
}
for(int j=1;j<Math.pow(2, i);j*=2){//输出依次增大的Math.pow(2, i)是求2的i次方
System.out.print(j+"\t");
}
for(int j=(int)Math.pow(2, i-2);j>0;j/=2){//输出依次减小的
System.out.print(j+"\t");
}
System.out.println();//换行
}
}
追问可是这个程序运行结果为什么是这样的? 我不会改你看看呗
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/d53f8794a4c27d1e16ba02b119d5ad6eddc43822?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追答输出结果是对的,是因为你窗口太小给挤下来了。你把\t换成几个空格就好了。或者你在eclipse下面跑。
因为数字位数不一样,所以直接输出空格的时候会对不齐。
我这段程序结果肯定是没错的啦
追问我会了,谢谢你啊。我把命令指示符的属性窗口大小给改了就对了。