要求打印7行直角杨辉三角
杨辉三角特点:
第1行和第2行数字都为1;
从第三行开始,除去开头和结尾数字为1,中间数字为上一行斜对角两个数字的和。
如下图:
打印结果:
代码如下:
package 杨辉三角;
public class Test2 {
public static void main(String[] args){
//建立以数组用于存储上一行的数据,因为是从第三行开始中间数是上一行斜对角的两数之和
//所以开始先存第二行的数据,然后在每次用完数组后,改变数组的长度,存储当前行的数据,
//用于下一行数据的计算
int k=2;
int[] temp=new int[k];
temp[0]=temp[k-1]=1;
for(int i=1;i<8;i++){
//建立数组,存取当前行数据
int[] arr=new int[i];
//给当前行数组赋值
for(int j=0;j<i;j++){
//先给第一个和最后一个数赋值
if(j==0||j==i-1){
arr[j]=1;
}else{
//中间数为上一行斜对角的两数之和
arr[j]=temp[j-1]+temp[j];
}
}
//给当前行赋值完毕后让k+1,增加数组长度,用于存取当前行的数据
k++;
temp=new int[k];
//打印当前行数组,并给新temp赋值,便于下一行使用当前行数据
for(int y=0;y<arr.length;y++){
temp[y]=arr[y];
System.out.print(arr[y]+" ");
}
System.out.println();
}
}
}
扩展延伸:
通过后台控制打印几行,并要求打印出来的是等腰三角形