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
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 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
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1 显示如上
int arr[][]=new int[12][12];
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
arr[i][j]=0;
}
}
for(int i=0;i<arr.length;i++){
arr[i][0]=1;
arr[i][1]=i;
}
for(int i=1;i<arr.length;i++){
for(int j=2;j<arr.length;j++){
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
}
}
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr.length;j++){
if(arr[i][j]!=0){
System.out.print(arr[i][j]+"\t");
}
}
System.out.println();
}
用了很多for循环,不知怎样优化。
public static void main(String args[])
{
int arr[][]=new int[12][12];
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
arr[i][j]=0;
}
}
for(int i=0;i<arr.length;i++){
arr[i][0]=1;
arr[i][1]=i;
}
for(int i=1;i<arr.length;i++){
for(int j=2;j<arr.length;j++){
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
}
}
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr.length;j++){
if(arr[i][j]!=0){
System.out.print(arr[i][j]+"\t");
}
}
System.out.println();
}
}
int arr[][]=new int[12][12];
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
arr[i][j]=0;
}
}
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
arr[i][0]=1;
arr[i][1]=i;
if(i!=0&&j!=0){
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
}
if(arr[i][j]!=0){
System.out.print(arr[i][j]+"\t");
}
}
System.out.println();
}
}
public static void print(int RowSize){//要输出的行数
List<Integer>preList=new ArrayList<Integer>();//上一行集合
List<Integer>nextList=new ArrayList<Integer>();//下一行集合
int i=0;
while(i<RowSize){
for (int j = 0; j <preList.size()+1; j++) {
if(j==0){//每行第一个
System.out.print(1+"\t");
nextList.add(new Integer(1));
}else{
if(j<=i/2){//输出一行前半部分
int num=preList.get(j-1)+preList.get(j);
System.out.print(num+"\t");
nextList.add(new Integer(num));
}else{//输出一行后半部分
int num =nextList.get(i-j);//通过对称关系获取对应的值
nextList.add(num);
System.out.print(num+"\t");
}
}
}
preList=nextList;//上一行指针指向下一行
nextList=new ArrayList<Integer>();//下一行指向新开辟个空间
System.out.println();
i++;
}
}
public static void print(int RowSize){//要输出的行数
int arrs[][]=new int [RowSize][RowSize];
for(int i=0;i<arrs.length;i++){
for(int j=0;j<=i;j++){
if(i==j||j==0){
arrs[i][j]=1;
}else {
arrs[i][j]=arrs[i-1][j-1]+arrs[i-1][j];
}
System.out.print(arrs[i][j]+"\t");
}
System.out.println();
}
/* for (int[] arr : arrs) {
for(int i:arr){
if(i!=0){
System.out.print(i+"\t");
}
}
System.out.println();
}*/
}