杨辉三角如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
…
每一列的第一个值和最后一个值为1,其余各数是上一行同列和前一列两个数之和,例如第三行的2就是前一行同列(1)与前一列(1)的和(2),以此类推。
先贴出完整代码和效果图:
int num=6;//需要打印几行
int[][] array=new int[num][];//定义num行未知列的二维数组
for (int i = 0; i < array.length; i++) {
array[i]=new int[i+1];//每一行需要打印多少列
for (int j = 0; j < array[i].length; j++) {
if (j==0 || j==array[i].length-1){
array[i][j]=1;//每一行第一列和最后一列赋值1
}else {
array[i][j]=array[i-1][j-1]+array[i-1][j];
}
}
}
//格式化输出
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length-1-i; j++) {//控制每一行需要打印的空格数
System.out.print(" ");
}
for (int j = 0; j < array[i].length; j++) {//输出数组中的值
System.out.print(array[i][j]+" ");
}
System.out.println();//每一行打印结束后换行
}
思路:
至于输出为等腰三角形的样子控制下输出格式就行,按规律打印每一行的空格数。