java⼀维数组杨辉三⾓_JAVA⼀维数组实现杨辉三⾓
题⽬:⽤JAVA实现如下形式(杨辉三⾓)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
思路:杨辉三⾓的性质是,除收尾两个数字为1以外,其他第n⾏第m个数字等于上⽅两个数之和。
⽹上有很多实现杨辉三⾓是应⽤⼆维数组,本⽂应⽤的是⼀维数组,不⼀定⽐⼆维数组好,但是也是⼀种实现问题的⽅法。
刚看到题⽬⾸先想到的是应该有两层for循环,第⼀层实现对⾏数的控制,第⼆层实现对每⼀⾏⾥具体数的控制。那么遇到⼀个问题,每⼀层循环的时候会⽤到上⼀层循环的数据,想到了应⽤全局变量,在每
⼀次循环结束的时候对全局变量进⾏赋值,这样下次循环就能⽤到本次循环的数据。
public class Procedure33 {
public static void main(String[] args) {
int [] up=new int [20];
for(int i=1;i<=10;i++){
int [] a=new int [i];
for(int j=0;j
if(j==0||j==i-1){
java定义一维数组并赋值a[j]=up[j]=1;
}
//杨辉三⾓核⼼的东西,其中up为上⼀层数据
if(i>=3&&j!=0&&j!=i-1){
a[j]=up[j-1]+up[j];
}
}
//把本次循环数据,放⼊up中,供下次循环使⽤
for(int k=0;k
up[k]=a[k];
}
for(int k=0;k
System.out.print(a[k]+" ");
}
System.out.println();
}
}
}
输出结果如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。