链接:https://www.nowcoder.com/questionTerminal/e671c6a913d448318a49be87850adbcc
分析:
创建一个二维数组来实现杨辉三角,因为当前元素的值是上一行的当前列与前一列的和,所以创建数组的时候要实现n+1,相当于罩子一样的东西。
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();int[][] dp = new int[n+1][n+1];dp[1][1] = 1;//计算杨辉三角的值//从第二行开始for(int i = 2; i <= n; i++){for(int j = 1; j <= i; j++){//当前元素的值是上一行的当前列和前一列的和dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1];}}//打印出杨辉三角for(int i = 1; i <= n; i++){for(int j = 1; j <= i; j++){//使用StringBuffer动态构建字符串StringBuffer ret = new StringBuffer();//计算当前数字长度int len = Integer.toString(dp[i][j]).length();//根据数字长度添加空格,实现右对齐for(int k = 0; k < 5 - len ;k++){ret.append(" ");}//打印空格和数字System.out.print(ret.toString() + dp[i][j]);}System.out.println();}}
}