简单的Java金字塔程序

4
我是Java编程的初学者,想要打印一个金字塔,但由于编码错误,我得不到理想的输出。
class p1 {
    public static void main(String agrs[]) {
        System.out.println("The Pattern is");
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                if (j <= i) {
                    System.out.print("  $");
                } else {
                    System.out.print("   ");
                }
            }
            System.out.println();
        }
    }
}

这是显示的

The Pattern is

  $            
  $  $         
  $  $  $      
  $  $  $  $   
  $  $  $  $  $

但我想要打印

The Pattern is


        $            
       $  $         
      $  $  $      
     $  $  $  $   
    $  $  $  $  $ 

这是一个部分重复的问题,可以在此处找到答案:https://dev59.com/lWXWa4cB1Zd3GeqPRu1Y。 - Subhrajyoti Majumder
6
在这里,您可以找到所有可能的金字塔程序- http://java4732.blogspot.in/2016/08/pyramid-programs-in-java.html - Umesh
7个回答

22

这段代码将会打印出一个由美元符号组成的金字塔。

public static void main(String[] args) {

     for(int i=0;i<5;i++) {
         for(int j=0;j<5-i;j++) {
             System.out.print(" ");
         }
        for(int k=0;k<=i;k++) {
            System.out.print("$ ");
        }
        System.out.println();  
    }

}

输出:

     $ 
    $ $ 
   $ $ $ 
  $ $ $ $ 
 $ $ $ $ $

非常棒,你的代码非常简单。 - Kishore Kumar
6
好的,您可以在这里找到更多的金字塔程序 - http://java4732.blogspot.in/2016/08/pyramid-programs-in-java.html。 - Umesh
感谢Umesh提供的信息。 - Qadir Hussain

1
public static void showPyramid(int level)
{
    for(int i=0;i<level;i++)
    {
        for(int j=0;j<level-i-1;j++)
        {
            System.out.print(" ");
        }
        for(int k=level-i;k<=level;k++)
        {
            System.out.print("*");
        }
        for(int k=level-i;k<level;k++)
        {
            System.out.print("*");
        }
        for(int j=0;j<level-i;j++)
        {
            System.out.print(" ");
        }

        System.out.print("\n");
    }

}

输出

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





1
public static void printPyramid(int number) {
    int size = 5;
    for (int k = 1; k <= size; k++) {
        for (int i = (size+2); i > k; i--) {
            System.out.print(" ");
        }
        for (int j = 1; j <= k; j++) {
            System.out.print(" *");
        }
        System.out.println();
    }
}

输出 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - phani

1
尝试这个。
 public static void main(String[] args) 
{
     int x=11;
     int y=x/2; // spaces
     int z=1; // *`s

     for(int i=0;i<5;i++)
    {
         for(int j=0;j<y;j++)
        {
             System.out.print(" ");
        }
        for(int k=0;k<z;k++)
        {
            System.out.print("*");
        }

        y=y-1;
        z=z+2;
        System.out.println();  
    }

}

这与我的最优答案类似,但不是我正在使用的答案。我正在使用一个5x5的矩阵,而此代码正在显示: ---------- run ---------- 模式是 * *** ***** ******* *********输出已完成(耗时0秒)- 正常终止 - user2849331

1
您可以尝试这种方式。
   for(int a=5;a>0;a--){
        int b=0;
       for(b=0;b<a;b++){
           System.out.print(" ");
       }
        for (int j=b;j<5;j++){
            System.out.print(" $ ");
        }
        System.out.println("");

    }

输出
      $ 
     $  $ 
    $  $  $ 
   $  $  $  $ 

1

enter image description here

 import java.util.Scanner;
    public class Print {
        public static void main(String[] args) {
            int row,temp,c,n;
            Scanner s=new Scanner(System.in);
            n=s.nextInt();
            temp = n;
            for ( row = 1 ; row <= n ; row++ )
               {
                  for ( c = 1 ; c < temp ; c++ )
                    System.out.print(" ");

                  temp--;

                  for ( c = 1 ; c <= 2*row - 1 ; c++ )
                      System.out.print("*");

                  System.out.println("");
               }
        }

    }

它确实是金字塔。 - learner

1

这是更好的金字塔打印方式:

图案如下:
     $     
    $$$    
   $$$$$   
  $$$$$$$  
 $$$$$$$$$ 
$$$$$$$$$$$
public static void main(String agrs[]) {
    System.out.println("The Pattern is");
    int size = 11; //use only odd numbers here
    for (int i = 1; i <= size; i=i+2) {
        int spaceCount = (size - i)/2;
        for(int j = 0; j< size; j++) {
            if(j < spaceCount || j >= (size - spaceCount)) {
                System.out.print(" ");
            } else {
                System.out.print("$");
            }
        }
        System.out.println();
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接