首页 > 解决方案 > 如何打印 * 的金字塔

问题描述

例如,输入 5 并显示:



* * * * *     
  * * *       
    * 

我当前的代码是这样的: 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){
                System.out.print(" * ");
            }else{
                System.out.print("   ");
            }

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

我可以展示以下内容:



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

标签: java

解决方案


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

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();
        }
    }
}

推荐阅读