敲了几十行,定义的变量太多太麻烦了,后半部分还没写,感觉这样写超麻烦,
最标准的代码,尝试了一个多小时做出来的
public static void main(String[] args) {
int totalRow = 7;
for (int row = 0; row < totalRow; row++) {
// 左边空格数
int leftSpaceNum = Math.abs(totalRow / 2 - row);
//每行中间最大值
int colMid = totalRow / 2 - leftSpaceNum + 1;
// 数字个数
int number = totalRow-2*Math.abs(totalRow/2-row);
for (int col = 0; col < totalRow; col++) {
if (col < leftSpaceNum) {
System.out.print(" ");
}else if(col < number+leftSpaceNum) {
System.out.print(colMid - Math.abs(totalRow/2-col) + " ");
}else {
break;
}
}
System.out.println();
}
}
就是这样用for循环去写的,虽然可能看起来麻烦,其实上半部分写出来,下半部分找到与上半部分规律就会容易很多了。
希望对题主有所帮助,可以的话,帮忙点个采纳!