java 打印空心菱形的兩種實現


第一種實現方式:

//打印給定行數的空心菱形
public static void draw(int size){
        if (size % 2 == 0) //如果是偶數行變為奇數
        {
            size++;
        }
        //中心點:2*size -1 ,實現的關鍵在於找准中心點,下面以打印7行的空心菱形為例進行分析
        for (int i = 0; i < size/2+1; i++)//打印菱形上面的4行
        {
            for (int j = 0; j < 2*size - 1; j++)//每一行的總長度是2*size -1 
            {
                if (j == (size -1-2*i) || j ==(size -1 + 2*i))//中心點左右兩邊對稱的位置打印 * 號
                {
                    System.out.print("*");
                }
                else
                {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
        for (int i = size/2-1; i >= 0; i--)//打印菱形下面的3行
        {            
            for (int j = 0; j < 2*size - 1; j++)
            {
                if (j == (size -1-2*i) || j ==(size -1 + 2*i))//中心點左右兩邊對稱的位置打印 * 號
                {
                    System.out.print("*");
                }
                else
                {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }

 

這是一個正方形里面有一個菱形:

第二種實現方式:

    public static void draw2(int size){
        if (size % 2 == 0)
        {
            size++;
        }
        
        for (int i = 0; i < size/2 + 1; i++)
        {
            for(int j =size/2+1;j>i+1;j--){//打印菱形空上角位置的空白
                System.out.print(" ");
            }
            for (int j = 0; j < 2*i+1; j++)//打印菱形的上半部分
            {
                if (j==0||j==2*i)
                {
                    System.out.print("*");
                }
                else
                {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
        
        for (int i = size/2+1; i < size; i++)//打印菱形的下半部分
        {
            for (int j = 0; j < i - size/2; j++)//打印左下角的空白
            {
                System.out.print(" ");
            }
            for (int j = 0; j < 2 * size -1-2*i; j++)
            {
                if (j==0||j==2*(size -i -1))
                {
                    System.out.print("*");
                }
                else
                {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }

輸出結果:

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM