Printing *s as triangles in Java?

后端 未结 21 1859
囚心锁ツ
囚心锁ツ 2020-11-30 11:41

My assignment in my Java course is to make 3 triangles. One left aligned, one right aligned, and one centered. I have to make a menu for what type of triangle and then input

相关标签:
21条回答
  • 2020-11-30 12:17
    public static void main(String[] args) {
    
        System.out.print("Enter the number: ");
        Scanner userInput = new Scanner(System.in);
        int myNum = userInput.nextInt();
        userInput.close();
    
        System.out.println("Centered Triange");
        for (int i = 1; i <= myNum; i+=1) {//This tells how many lines to print (height)
    
            for (int k = 0; k < (myNum-i); k+=1) {//Prints spaces before the '*'
                System.out.print(" ");
            }
    
            for (int j = 0; j < i; j++) { //Prints a " " followed by '*'.   
                System.out.print(" *");
            }
    
            System.out.println(""); //Next Line     
        }
    
        System.out.println("Left Triange");
        for (int i = 1; i <= myNum; i+=1) {//This tells how many lines to print (height)
    
            for (int j = 0; j < i; j++) { //Prints the '*' first in each line then spaces.  
                System.out.print("* ");
            }
    
            System.out.println(""); //Next Line         
        }
    
        System.out.println("Right Triange");
        for (int i = 1; i <= myNum; i+=1) {//This tells how many lines to print (height)
    
            for (int k = 0; k < (myNum-i); k+=1) {//Prints spaces before the '*'
                System.out.print("  ");
            }
    
            for (int j = 0; j < i; j+=1) { //Prints the " " first in each line then a "*".  
                System.out.print(" *");
            }
    
            System.out.println(""); //Next Line         
        }
    
    }
    
    0 讨论(0)
  • 2020-11-30 12:17

    This is the least complex program, which takes only 1 for loop to print the triangle. This works only for the center triangle, but small tweaking would make it work for other's as well -

    import java.io.DataInputStream;
    
    public class Triangle {
        public static void main(String a[]) throws Exception{
            DataInputStream in = new DataInputStream(System.in);
    
            int n = Integer.parseInt(in.readLine());
            String b = new String(new char[n]).replaceAll("\0", " ");
            String s = "*";
            for(int i=1; i<=n; i++){
                System.out.print(b);
                System.out.println(s);
                s += "**";
                b = b.substring(0, n-i);
                System.out.println();
            }
        }
    }
    
    0 讨论(0)
  • 2020-11-30 12:21

    For the right triangle, for each row :

    • First: You need to print spaces from 0 to rowNumber - 1 - i.
    • Second: You need to print \* from rowNumber - 1 - i to rowNumber.

    Note: i is the row index from 0 to rowNumber and rowNumber is number of rows.

    For the centre triangle: it looks like "right triangle" plus adding \* according to the row index (for ex : in first row you will add nothing because the index is 0 , in the second row you will add one ' * ', and so on).

    0 讨论(0)
  • 2020-11-30 12:22
    package apple;
    
    public class Triangle
    {
    private static final int row = 3;
    
    public static void main(String...strings){
        printLeftTrangle();
        System.out.println();
        printRightTrangle();
        System.out.println();
        printTrangle();
    }
    
    /*  Pattern will be
         *
         **
         ***
         ****
     */
    
    public static void printLeftTrangle(){
    
        for(int y=1;y<=row;y++){
         for(int x=1;x<=y;x++)
             System.out.print("*");
         System.out.println();
        }
    }
    
    /*  Pattern will be
            *
           **
          ***
         ****
     */
    public static void printRightTrangle(){
        for(int y=1;y<=row;y++){
            for(int space=row;space>y;space--)
                System.out.print(" ");
            for(int x=1;x<=y;x++)
                System.out.print("*");
            System.out.println();
        }
    }
    
    /*  Pattern will be
         *
        ***
       *****
    */
    
    public static void printTrangle(){
    
        for(int y=1, star=1;y<=row;y++,star +=2){
            for(int space=row;space>y;space--)
                System.out.print(" ");
            for(int x=1;x<=star;x++)
                System.out.print("*");
            System.out.println();
        }
    }
    }
    
    0 讨论(0)
  • 2020-11-30 12:22
    import java.util.Scanner;
    
    public class A {
    
        public void triagle_center(int max){//max means maximum star having
            int n=max/2;
            for(int m=0;m<((2*n)-1);m++){//for upper star
                System.out.print(" ");
            }
            System.out.println("*");
    
            for(int j=1;j<=n;j++){
                for(int i=1;i<=n-j; i++){
                    System.out.print("  ");
                }
                for(int k=1;k<=2*j;k++){
                System.out.print("* ");
                }
    
                System.out.println();
            }
    
    
        }
    
        public void triagle_right(int max){
            for(int j=1;j<=max;j++){
                for(int i=1;i<=j; i++){
                    System.out.print("* ");
                }
    
                System.out.println();
            }
        }
    
        public void triagle_left(int max){
            for(int j=1;j<=max;j++){
                for(int i=1;i<=max-j; i++){
                    System.out.print("  ");
                }
                for(int k=1;k<=j; k++){
                    System.out.print("* ");
                }
    
                System.out.println();
            }
        }
    
        public static void main(String args[]){
            A a=new A();
            Scanner input = new Scanner (System.in);
            System.out.println("Types of Triangles");
            System.out.println("\t1. Left");
            System.out.println("\t2. Right");
            System.out.println("\t3. Center");
            System.out.print("Enter a number: ");
            int menu = input.nextInt();
            Scanner input1 = new Scanner (System.in);
            System.out.print("maximum Stars in last row: ");
            int row = input1.nextInt();
            if (menu == 1)
                a.triagle_left(row);
            if (menu == 2)
                a.triagle_right(row);
            if (menu == 3)
                a.triagle_center(row);
        }
    }
    
    0 讨论(0)
  • 2020-11-30 12:23

    Left alinged triangle- * **



    from above pattern we come to know that-
    1)we need to print pattern containing n rows (for above pattern n is 4).
    2)each  row contains star and no of stars i each row is incremented by 1.
    So for Left alinged triangle we need to use 2 for loop.
    1st "for loop" for printing n row.
    2nd  "for loop for printing stars in each rows. 
    
    
     Code for  Left alinged triangle-
    
     public static void leftTriangle()
    {
           /// here  no of rows is 4
     for (int a=1;a<=4;a++)// for loop for row
     {   
     for (int b=1;b<=a;b++)for loop for column
     {
     System.out.print("*");
     }
    
    System.out.println();}
    }
    

    Right alinged triangle- *
    **



    from above pattern we come to know that-
    1)we need to print pattern containing n rows (for above pattern n is 4).
     2)In each  row we need to print spaces followed by a star & no of spaces            in each row is decremented by 1.
     So for Right alinged triangle we need to use 3 for loop.
     1st "for loop" for printing n row.
     2nd  "for loop for printing spaces.
     3rd "for loop" for printing stars.
    
    Code for Right alinged triangle -
    
    public void rightTriangle()
    {
        // here 1st print space and then print star
      for (int a=1;a<=4;a++)// for loop for row
     { 
     for (int c =3;c>=a;c--)// for loop fr space
     {  
     System.out.print(" ");
     }
     for (int d=1;d<=a;d++)// for loop for column
     { 
     System.out.print("*");   
     }
     System.out.println(); 
     }
     }
    

    Center Triangle- *
    * *



    from above pattern we come to know that- 1)we need to print pattern containing n rows (for above pattern n is 4). 2)Intially in each row we need to print spaces followed by a star & then again a space . NO of spaces in each row at start is decremented by 1. So for Right alinged triangle we need to use 3 for loop. 1st "for loop" for printing n row. 2nd "for loop for printing spaces. 3rd "for loop" for printing stars.

    Code for center Triangle-

    public  void centerTriangle()
    {   
    for (int a=1;a<=4;a++)// for lop for row
    {   
    for (int c =4;c>=a;c--)// for loop for space
    {  
    System.out.print(" ");
    }
    for (int b=1;b<=a;b++)// for loop for column
    {
    System.out.print("*"+" ");
    }
    System.out.println();}
    }
    

    CODE FOR PRINTING ALL 3 PATTERNS - public class space4 { public static void leftTriangle() { /// here no of rows is 4 for (int a=1;a<=4;a++)// for loop for row {
    for (int b=1;b<=a;b++)for loop for column { System.out.print("*"); }

    System.out.println();}
    }
    
    public static void rightTriangle()
    {
        // here 1st print space and then print star
      for (int a=1;a<=4;a++)// for loop for row
     { 
     for (int c =3;c>=a;c--)// for loop for space
     {  
     System.out.print(" ");
     }
     for (int d=1;d<=a;d++)// for loop for column
     { 
     System.out.print("*");   
     }
     System.out.println(); 
     }
     }
    
    public static void centerTriangle()
    {   
    for (int a=1;a<=4;a++)// for lop for row
    {   
    for (int c =4;c>=a;c--)// for loop for space
    {  
    System.out.print(" ");
    }
    for (int b=1;b<=a;b++)// for loop for column
    {
    System.out.print("*"+" ");
    }
    System.out.println();}
    }
    public static void main (String args [])
    {
    space4 s=new space4();
    s.leftTriangle();
    s.rightTriangle();
    s.centerTriangle();
    }
    }
    
    0 讨论(0)
提交回复
热议问题