这很简单,但我真的不知道该怎么做。
我已经得到它以便它可以工作,但它只适用于大小为6的数组,我已经尝试为它编写循环但是我不确定如何每次减少空格数周围。也许我错了,但这就是我现在所拥有的。
public static void prettyPrint(int[] numbers) {
System.out.println(" " + numbers[0]);
System.out.println(" " + numbers[1] + " " + numbers[2]);
System.out.println(" " + numbers[3] + " " + numbers[4] + " " + numbers[5]);
}
其中数组编号在上面定义为
static int[] numbers = { 4, 3, 5, 6, 7, 8 };
答案 0 :(得分:1)
您可能希望使用循环来实现所需的输出。
首先,考虑一下金字塔结构的本质。
可以在金字塔的第i行(从顶部开始计算)上表示的数字是i。 例如,在金字塔的顶部(即i =第一行),只能显示一个数字。同样在第5行,显示5个数字。
记住这一点,代码看起来像这样:
int n = numbers.length;
int idx = 0;
int numRows = 0;
//First, calculate number of rows that pyramid will have
while(idx < n){
numRows++;
for(int numInRow=0; numInRow<numRows; numInRow++){
idx++;
}
}
//Make the pyramid
idx = 0;
for(int i=1; i <= numRows && idx < n; i++){ //Loop # of lines
for(int j=0; j < (numRows-i) ; j++){
System.out.print(" "); //Left pad
}
for(int j=0; j<i; j++){ // Add i many numbers only
System.out.print(numbers[idx++] +" "); //Print
if(idx >= n){
break; //If index exceeds, break
}
}
System.out.println(); //New line
}