1.杨辉三角算法分析:
1>每一行的首尾都是1
2>第几行就有几个元素
3>从第三行开始,除了每行的首尾,其余的每一个元素都是上面的两个相邻的元素之和
2.实现代码:
public class test{
public static void main(String[] args){
test t = new test();
t.fun();
}
public void fun(){
Scanner in = new Scanner(System.in);
while(true){
System.out.print("请输入要显示的杨辉三角的行数n(n<20):");
int n = in.nextInt();
if(n <= 0 || n >= 20){
System.out.println("输入的n有错,程序中止");
return ;
}
//定义一个数组用于保存杨辉三角的每一个元素的值
int a[][] = new int[20][20];
//初始化a数组
a[1][1] = a[2][1] = a[2][2] = 1;
//从第三行开始进行递推计算杨辉三角的每个位置的值
for(int i=3; i<=n; i++){
for(int j=1; j<=i; j++){
//每一行的首尾都是1
if(j == 1 || j == i){
a[i][j] = 1;
continue;
}
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
//输出杨辉三角
System.out.println(n + "行杨辉三角如下" + );
for(int i=1; i<=n; i++){
for(int c=1; c<=n-i; c++){
System.out.print("\t");
}
for(int j=1; j<=i; j++){
System.out.print(a[i][j]);
System.out.print("\t");
}
System.out.println();
}
}
}
}