题目: 打印杨辉三角形(要求打印10行),如下所示:(使用二维数组)
首先我们来看一下杨辉三角的规律
1.第n行有n个数字.
2.每一行的开始和结尾数字都为1.
用二维数组表示就是num[i][0]=1; num[i][j]=1(当i==j时);
3.第n+1行的第i个数字等于第n行的i-1个数字加上第n行的i个数字。
用二维数组表示就是 num[i+1][j]=num[i][j-1]+num[i][j];
下面我们来看一下用代码的实现
//定义一个长度为10的二维数组
int [][] num=new int [10][];
//行数和个数的关系
for (int i=0;i<num.length;i++){
num[i]=new int[i+1];
}
for (int i=0;i<num.length;i++){
for (int j=0;j<num[i].length;j++){
if (j==0||j==num[i].length-1){
num[i][j]=1;//左右端点
}else {
num[i][j]=num[i-1][j-1]+num[i-1][j];
}
}
}
//输出
for (int i = 0; i <num.length ; i++) {
//输出每行前面的空格
for (int j = 0; j <10-i ; j++) {
System.out.print(" ");
}
for (int j = 0; j <num[i].length ; j++) {
System.out.print(num[i][j]+" ");
}
System.out.println();//换行
}
运行结果如下所示: