问题描述
打印杨辉三角
import java.util.Scanner;
public class Test5_1_1 {
static void yanghui(int n)
{
int[][] a=new int[n][n];
for (int i=0;i<n;i++)
{
for (int j=0;j<=i;j++)
{
if (j==0 || j==i)
a[i][j]=1;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for (int i=0;i<n;i++)
{
for (int j=0;j<=i;j++)
System.out.print(a[i][j]+"\t");
System.out.println();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc =new Scanner(System.in);
System.out.println("请输入要打印多少行杨辉三角:");
int n=sc.nextInt();
yanghui(n);
sc.close();
}
}
优化后
用一维数组存储杨辉三角
import java.util.Scanner;
public class Test5_1_2 {
static void yanghui(int n)
{
int[] a=new int[n+1];
System.out.println("1");
System.out.println("1"+"\t"+"1");
a[1]=a[2]=1;
for (int i=3;i<=n;i++)
{
a[1]=a[i]=1;
for (int j=i-1;j>1;j--)
a[j]=a[j]+a[j-1];
for (int j=1;j<=i;j++)
System.out.print(a[j]+"\t");
System.out.println();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc =new Scanner(System.in);
System.out.println("请输入要打印多少行杨辉三角:");
int n=sc.nextInt();
yanghui(n);
sc.close();
}
}