java控制台輸出數字金字塔樣本分享_java

來源:互聯網
上載者:User

複製代碼 代碼如下:

/*Java
 *Author: NealFeng at oschina.net
 *License: GPLv2+
 *Time: 2014/1/17
 *
 *在控制台輸出數字金字塔:
 *                   1
 *               1   2   1
 *           1   2   4   2   1
 *       1   2   4   8   4   2   1
 *   1   2   4   8  16   8   4   2   1
 *控制台輸出的缺陷是數字不能完全置中,只能靠右對齊或靠左對齊
*/
public class NumberPyramid {
    public static void main(String[] args) {
        // 行數
        int lineNumber = 5;
        // 基數
        int baseNumber = 2;
        // 產生數字,數字儲存在數組中{1,2,4,8,...,2^n}
        int[] numbers = new int[lineNumber];
        numbers[0]=1;
        for(int i = 1; i < lineNumber; i++) {
            numbers[i] = numbers[i-1] * baseNumber;
        }
        // 計算每個數字占幾個字元:最大的數字位元+2
        int columnsPerNumber =
                String.valueOf(numbers[lineNumber-1]).length() + 2;
        // 輸出,輸出格式如下:
        // 每個縮排 = columnsPerNumber個空格
        // 每個數字寬度為columnsPerNumber
        // 這樣就可以形成金字塔狀
        // 縮排 縮排 縮排 數字
        // 縮排 縮排 數字 數字 數字
        // 縮排 數字 數字 數字 數字 數字
        // 數字 數字 數字 數字 數字 數字  數字
        for(int i = 0; i < lineNumber; i++) {
            //輸出縮排
            for(int j = 0; j < lineNumber-i-1; j++)
                System.out.printf("%"+columnsPerNumber+"s", " ");
            //輸出數字
            //輸出{1,2,4,8,...,2^n}
            for(int k = 0; k < i+1; k++)
                System.out.printf("%"+columnsPerNumber+"d", numbers[k]);
            //輸出{2^n-1,...,8,4,2,1}
            for(int m = 0; m < i; m++)
                System.out.printf("%"+columnsPerNumber+"d", numbers[i-m-1]);
            //換行
            System.out.println();
        }
    }
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.