这个其实就是根据我们理解的杨辉三角来写杨辉三角!告诉你上一行的数据,你要能写出下一行的数据;
代码:
/**
* Created by wlxsq on 2016/3/8.
*/
public class HelloWorld {
public static void main(String[] args){
int []a;
a=new int [150];
a[1]=1;
int k=1,n=1,cnt=2;
while(k<55){
for(int i=k;i<k+n;i++){
System.out.print(" "+a[i]);
if(i==k) a[cnt++]=a[i]; // 下一行根据上一行的数据形成;
if(i>k) a[cnt++]=a[i]+a[i-1]; // 注意这三行的数据不能弄乱了;
if(i==k+n-1) a[cnt++]=a[i];
}
System.out.println();
k=k+n;n=n+1;
}
}
}
用函数实现,一维二维数组实现:
/**
* @(#)yangHuiSanJiao.java
*
*
* @author
* @version 1.00 2016/3/9
*/
public class yangHuiSanJiao {
public static void main(String[] args){
int t=6;
yangHuiSanJiao prin=new yangHuiSanJiao();
prin.print2(t);
}
static void print1(int t){
int temp=0;
int []a=new int [((t * (t + 1)) / 2) + 1];
int k=1,n=1,cnt=2;
a[1]=1;
while(temp<t){
temp++;
for(int i=k;i<k+n;i++){
System.out.print(" "+a[i]);
if(i==k&&temp<t) a[cnt++]=a[i];
if(i>k&&temp<t) a[cnt++]=a[i]+a[i-1];
if(i==k+n-1&&temp<t) a[cnt++]=a[i];
}
k=k+n;n=n+1;
System.out.println();
}
}
static void print2(int t){
int [][]a=new int [t][];
for(int i=0;i<a.length;i++){
a[i]=new int[i+1];
for(int j=0;j<i;j++){
if(i==0||j==0||i==j) a[i][j]=1;
else a[i][j]=a[i-1][j-1]+a[i-1][j];
System.out.print(" "+a[i][j]);
}
System.out.println();
}
}
}