直角版杨辉三角:
import java.util.*;
public class yang
{ public static void main(String args[])
{ Scanner sc=new Scanner(System.in);
System.out.println("请输入要输出的杨辉三角的行数:");
int x=sc.nextInt();
int [][] arr = new int[x][x];
System.out.println("杨辉三角为:");
for(int i=0;i<arr.length;i++)
{ for(int j=0;j<=i;j++)
{ if(j==0 || j==i)
{ arr[i][j]=1; }
else
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
System.out.print(arr[i][j]+"\t"); }
System.out.println(); }
}
}
等腰三角形版杨辉三角:
import java.util.*;
public class yang
{ public static void main(String args[])
{ Scanner sc=new Scanner(System.in);
System.out.println("请输入要输出的杨辉三角的行数:");
int x=sc.nextInt();
int [][] arr = new int[x][x];
System.out.println("杨辉三角为:");
for(int i=0;i<arr.length;i++)
{ for(int j=0;j<=i;j++)
{ if(j==0 || j==i)
{ arr[i][j]=1; }
else
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
}
}
for(int i=0;i<arr.length;i++)
{ int k = arr.length-i; //此处可以直接把 k 值除以2,就不用输出制表符的一半
for(int j=0;j<=k;j++)
{ System.out.print("\t"); } //此处制表符为数组输出是所需制表符的一半,不然会输入一个堆在右下角的三角形
for(int j=0;j<=i;j++)
{ System.out.print(arr[i][j]+"\t"+"\t"); }
System.out.println();
}
}
}
联系两个代码会发现有很多的共同之处,下面将两个代码一样部分统一:
import java.util.*;
public class yang
{ public static void main(String args[])
{ Scanner sc=new Scanner(System.in);
System.out.println("请输入要输出的杨辉三角的行数:");
int x=sc.nextInt();
int [][] arr = new int[x][x];
System.out.println("杨辉三角为:");
for(int i=0;i<arr.length;i++)
{ int k = arr.length-i;
for(int j=0;j<=k;j++)
{ System.out.print("\t"); }
for(int j=0;j<=i;j++)
{ if(j==0 || j==i)
{ arr[i][j]=1; }
else
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
System.out.print(arr[i][j]+"\t"+"\t");
}
System.out.println();
}
}
}