金字塔分析代码
1 public static void main(String[] args) { 2 // 行数 3 int lineNumber = 5; 4 // 基数 5 int baseNumber = 2; 6 // 生成数字,数字保存在数组中{1,2,4,8,...,2^n} 7 int[] numbers = new int[lineNumber]; 8 numbers[0]=1; 9 for(int i = 1; i < lineNumber; i++) { 10 numbers[i] = numbers[i-1] * baseNumber; 11 } 12 // 计算每个数字占几个字符:最大的数字位数+2 13 int columnsPerNumber = 14 String.valueOf(numbers[lineNumber-1]).length() + 2; 15 // 输出,输出格式如下: 16 // 每个缩进 = columnsPerNumber个空格 17 // 每个数字宽度为columnsPerNumber 18 // 这样就可以形成金字塔状 19 // 缩进 缩进 缩进 数字 20 // 缩进 缩进 数字 数字 数字 21 // 缩进 数字 数字 数字 数字 数字 22 // 数字 数字 数字 数字 数字 数字 数字 23 for(int i = 0; i < lineNumber; i++) { 24 //输出缩进 25 for(int j = 0; j < lineNumber-i-1; j++) 26 System.out.printf("%"+columnsPerNumber+"s", " "); 27 //输出数字 28 //输出{1,2,4,8,...,2^n} 29 for(int k = 0; k < i+1; k++) 30 System.out.printf("%"+columnsPerNumber+"d", numbers[k]); 31 //输出{2^n-1,...,8,4,2,1} 32 for(int m = 0; m < i; m++) 33 System.out.printf("%"+columnsPerNumber+"d", numbers[i-m-1]); 34 //换行 35 System.out.println(); 36 } 37 }