因此,有人问我这个问题,我只能解决代码的顶部,而我只能停留在底部。
编写一个名为EmptyDiamond.java的Java程序,其中包含采用
整数N,并在2N − 1行上打印一个空菱形,如下所示。
当n = 3时采样输出
1
2 2
3 3
2 2
1
到目前为止,这是我的代码:
public static void shape(int n){
//TOP PART
for(int i=1; i<=(n-1) ; i++){
System.out.print(" ");
}
System.out.println(1);
for(int i=2; i<=n; i++){
for(int j=1; j<=(n-i); j++){
System.out.print(" ");
}
System.out.print(i);
for(int j=1; j<=2*i-n+1; j++){
System.out.print(" ");
}
System.out.println(i);
}
//BOTTOM PART(The messed up part)
for(int i=n+1; i<=2*n-2; i++){
for(int j=1; j<=n-i; j++){
System.out.print(" ");
}
System.out.print(i);
for(int j=1; j<=n; j++){
System.out.print(" ");
}
System.out.print(i);
}
for(int i=1; i<=(n-1) ; i++){
System.out.print(" ");
}
System.out.println(1);
}
public static void main(String[]args){
shape(4);
}
最佳答案
这是打印空钻石的程序:
int n = 3; //change the value of n to increase the size of diamond
int upperCount = 1;
for(int i=n; i>=1; i--){
for(int j=i; j>=1; j--){
System.out.print(" ");
}
System.out.print(upperCount);
for(int j=0; j<=upperCount-2; j++){
System.out.print(" ");
}
for(int j=0; j<=upperCount-2; j++){
System.out.print(" ");
}
if(upperCount!=1){
System.out.print(upperCount);
}
upperCount++;
System.out.print("\n");
}
int lowerCount = n-1;
for(int i=1; i<=n-1; i++){
for(int j=0; j<=i; j++){
System.out.print(" ");
}
System.out.print(lowerCount);
for(int j=0; j<=lowerCount-2; j++){
System.out.print(" ");
}
for(int j=0; j<=lowerCount-2; j++){
System.out.print(" ");
}
if(lowerCount!=1){
System.out.print(lowerCount);
}
lowerCount--;
System.out.print("\n");
}
在代码的底部进行以下更改:
int lowerCount = n-1;
for(int i=n-1; i>=2; i--){
for(int j=1; j<=(n-i); j++){
System.out.print(" ");
}
System.out.print(i);
for(int j=1; j<=lowerCount; j++){
System.out.print(" ");
}
System.out.print(i);
lowerCount-=2;
}