我正在尝试使用for循环打印这样的东西:
1
121
12321
1234321
123454321
int mid = 1;
System.out.println(" " + mid + " ");
mid++;
for(int i = 1; i <=4; i++){
//left spaces
for(int x = 4; x > i; x--){
System.out.print(" ");
}
//left diguts
for(int z = 1; z <= i; z++){
System.out.print(z);
}
//middle digit
System.out.print(mid);
mid++;
//right diguts
for(int b = 1; b <= i; b++){
System.out.print(b);
}
//right spaces
for(int y = 4; y > i; y--){
System.out.print(" ");
}
System.out.println();
}
但我一直在接受:
1
121
12312
1234123
123451234
答案 0 :(得分:6)
对于正确的数字,您必须以相反的顺序打印数字,以便进行如下更改:
//right diguts
for(int b = 1; b <= i; b++){
System.out.print(b);
}
将此更改为
//right diguts
for(int b = i; b > 0; b--){
System.out.print(b);
}
答案 1 :(得分:1)
实际上没有必要将 1 分开。您可以将其包含在通用逻辑中:
public class Pyramid {
public static void main(String[] args) {
int mid = 1;
for (int i = 0; i <= 4; i++) {
// left spaces
for (int x = 4; x > i; x--) {
System.out.print(" ");
}
// left digits
for (int z = 1; z <= i; z++) {
System.out.print(z);
}
// middle digit
System.out.print(mid);
mid++;
// right digits
for(int b = i; b > 0; b--){
System.out.print(b);
}
// right spaces
for (int y = 4; y > i; y--) {
System.out.print(" ");
}
System.out.println();
}
}
}
答案 2 :(得分:1)
这实际上是很棒的高尔夫拼图! 我只使用两个循环做到了这一点! :)
int n = 5;
for(int i=0; i < n; i++){
for(int j=0; j < 2*n; j++){
int abs = Math.abs(n-j);
System.out.print(abs>i ? " " : i-abs+1);
}
System.out.println();
}
输出:
1
121
12321
1234321
123454321