Java打印一个棱形跟等腰三角形


行数 *数

5 5 由于每行*数差值是2,因此得到个固定值必须加2倍行数,上图固定值是15
6 3   下面代码中输出了9行,可以推算出固定值为19
7 1

先来段VB6的打印菱形

Dim i As Integer
For i = 1 To 9
    If i > 5 Then
        Print Space(i - 4); String(19 - 2 * i, "*")
    Else
        Print Space(6 - i); String(2 * i - 1, "*")
    End If
Next i
再来Java版的:
public class demo2 {
    public static void main(String[] args) {
        for (int i = 1; i <=9; i++) {
            if(i>5){
                for (int j=1;j<=i-4;j++){ System.out.print(" "); }
                for(int k=1;k<=19-2*i;k++){ System.out.print("*"); }
                System.out.println("");
            }else{
                for (int j=1;j<=6-i;j++){ System.out.print(" "); }
                for(int k=1;k<=2*i-1;k++){ System.out.print("*"); }
                System.out.println("");
            }        
        }
    }
}

下面来传统解法,从上到下依次打印等腰三角形,再打印倒三角形:

 

public class demo{
    public static void main(String[] args) {
    for(int i=1;i<=4;i++){
        for (int k=1;k<=4-i;k++){
            System.out.print(" ");
        }
        for (int j=1;j<=2*i-1;j++){
            System.out.print("*");
        }
        System.out.println("");
    }
        for (int i1 = 1; i1 <=3; i1++) {
            for (int k=1;k<=i1;k++){
                System.out.print(" ");
            }
            for (int j=1;j<=7-2*i1;j++){
                System.out.print("*");
            }
            System.out.println("");
        }
   }
}
可以看出微软自带的方法确实精简了不少代码,至于Java就定义两个方法再打印个菱形吧:
public class demo2 {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            if (i > 5) {
                Space(i - 4);Star(19 - 2 * i);
            } else {
                Space(6 - i);Star(2 * i - 1);
            }
        }
    }
    public static void Space(int s) {
        for (int i = 0; i < s; i++) {
            System.out.print(" ");
        }
    }
    public static void Star(int s1) {
        for (int i = 0; i < s1; i++) {
            System.out.print("*");
        }
        System.out.println("");
    }
}

猜你喜欢

转载自blog.csdn.net/u014238498/article/details/80456299