国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java控制臺輸出數字金字塔示例分享

2019-11-26 15:45:24
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

/*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();
        }
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 景东| 桦川县| 巴东县| 泾阳县| 平遥县| 西平县| 井冈山市| 宿松县| 个旧市| 沙田区| 灵宝市| 秦安县| 公主岭市| 郧西县| 南和县| 垦利县| 阳春市| 新郑市| 微山县| 海阳市| 西和县| 博湖县| 鲁山县| 沾益县| 肇东市| 安溪县| 海城市| 巴塘县| 崇文区| 新干县| 彭州市| 永胜县| 永顺县| 淮南市| 辉县市| 阿克苏市| 中卫市| 沭阳县| 揭西县| 红河县| 乌恰县|