打印数字翻转金字塔风格

时间:2014-04-21 08:45:05

标签: java string for-loop

我正在尝试使用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

3 个答案:

答案 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