Java小程序之用*打印正/倒立三角形

题目:用Java编写一个根据输入的行数和正倒,用”*”打印三角形
代码如下:
文件名:TrianglePrinter.java

public class TrianglePrinter {
    /**
     * 打印正立着的三角形
     * 
     */
     public void printUprightTriangle(int x) {

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

     /**
      * 打印倒立着的三角形
      * 
      */
     public void printUpSideDownTriangle(int x){

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

     }

}

文件名:Test.java

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        TrianglePrinter tp = new TrianglePrinter();
        Scanner sc = new Scanner(System.in);
        System.out.println("input the height of the triangle you want:");
        try {
            int x = sc.nextInt();
            System.out.println("choose the form :1.upright 2.upsidedown");
            try {
                int choice = sc.nextInt();
                switch (choice) {
                case 1:
                    tp.printUprightTriangle(x);
                    break;
                case 2:
                    tp.printUpSideDownTriangle(x);
                    break;
                }
            } catch (Exception e) {
                System.out.println("wrong choice");
            }
        } catch (Exception e) {
            System.out.println("wrong number");
        }
        sc.close();
    }
}

打印正立三角形的思路:
1234* (第1行打印4个空格之后打印1个”* ” ——(n-1)个空格 1个”* “)
123* * (第2行打印3个空格之后打印2个”* ” ——(n-2)个空格 2个”* “)
12* * * (第3行打印2个空格之后打印3个”* ” ——(n-3)个空格 3个”* “)
1* * * * (第4行打印1个空格之后打印4个”* ” ——(n-4)个空格 4个”* “)
* * * * * (第5行打印0个空格之后打印5个”* ” —— (n-5)个空格 5个”* “)

由此得出打印有n行的正立三角形的第i行,需要先打印(n-i)个空格之后打印 i个”*”;

打印倒立三角形的思路:
* * * * * (第1行不打印空格,打印5个”* “——(n-5)个空格 n个”* “)
1* * * * (第2行打印1个空格,打印4个”* “——(n-4)个空格 n-1个”* “)
12* * * (第3行打印2个空格,打印3个”* “——(n-3)个空格 n-2个”* “)
123* * (第4行打印3个空格,打印2个”* “——(n-2)个空格 n-3个”* “)
1234* (第5行打印4个空格,打印1个”* “——(n-1)个空格 n-4个”* “)

由此得出打印有n行的倒立三角形的第i行,需要先打印(i-1)个空格之后打印(n-i)个”*”


初学Java,欢迎大家对错误批评指正,指点迷津

你可能感兴趣的:(java小程序)