我如何打印*的金字塔

时间:2018-12-01 13:34:54

标签: java

例如,输入5并显示以下内容:



* * * * *     
  * * *       
    * 

我当前的代码是这样的: 公共静态void main(String [] args){         扫描仪输入=新的Scanner(System.in);

    int num = 4;

    while(num % 2 == 0){

        System.out.println("Introduce un numero impar:");
        num = in.nextInt();

        if (num % 2 == 0){
            System.out.println("Has introducido un numero par");
        }
    }

   for (int numFila = 0; numFila < num; numFila++) {    //filas
        for (int numColumna = 0; numColumna < num*2-1; numColumna++) {   //columnas

            if (numFila <= numColumna){
                System.out.print(" * ");
            }else{
                System.out.print("   ");
            }

        }
        //Salt de línia per començar un altre fila
        System.out.println();
    }
}

我可以显示以下内容:



* * * * * * *   
  * * * * * *    
    * * * * *

2 个答案:

答案 0 :(得分:0)

只需在您的if语句中添加numColumna <= num - numFila - 1。 整个代码是:

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int num = 4;
        while(num % 2 == 0){
            System.out.println("Introduce un numero impar:");
            num = in.nextInt();
            if (num % 2 == 0){
                System.out.println("Has introducido un numero par");
            }
        }
        for (int numFila = 0; numFila < num; numFila++) {    //filas
            for (int numColumna = 0; numColumna < num*2-1; numColumna++) {   //columnas
                if (numFila <= numColumna && numColumna <= num - numFila - 1){
                    System.out.print(" * ");
                }else{
                    System.out.print("   ");
                }
            }
            //Salt de línia per començar un altre fila
            System.out.println();
        }
    }
}

答案 1 :(得分:0)

我会这样写代码:

public static void main(String[] args) { 
    Scanner in = new Scanner(System.in);

    int num = 4;

    while(num % 2 == 0){

        System.out.println("Introduce un numero impar:");
        num = in.nextInt();

        if (num % 2 == 0){
            System.out.println("Has introducido un numero par");
        }
    }

    int rows = (num + 1) / 2;

    for(int i = rows; i >= 1; i--) {
        for(int j = 1; j <= rows - i; j++) {
            System.out.print("   ");
        }

        for(int j=i; j <= 2 * i - 1; j++) {
            System.out.print(" * ");
        }

        for(int j = 0; j < i - 1; j++) {
            System.out.print(" * ");
        }

        System.out.println();
    }
}