1.关于杨辉三角的介绍
杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。
2.代码如下
package com.shuzu;
public class example12 {
public static void main(String[] args){
int[][]a=new int[10][];//先定义一个二维数组
for(int i=0;i<a.length;i++){
a[i]=new int[i+1];//给每一个一维数组分配空间
for(int j=0;j<a[i].length;j++){
if(j==0||j==a[i].length-1){
a[i][j]=1;//通过图形我们能看出来杨辉三角的最外围全是1
}
else {
a[i][j]=a[i-1][j]+a[i-1][j-1];//这里就是杨辉三角所具有的规律,我们不难发现
}
}
}
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){//再次循环输出我们想要的杨辉三角效果图
System.out.print(a[i][j]+"\t");//切记这里一定要加上空格符,不然输出的图形可能不是你想要的效果图
}
System.out.println();
}
}
}
下面就是我们想要的效果图
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
3.第二种效果图的杨辉三角
package com.shuzu;
import java.util.Scanner;
public class example13 {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int row= sc.nextInt();//这里我们想看到多少行的杨辉三角都可以
int[][]b=new int[row][2*row+1];
b[0][row]=1;//通过图形我们可以看出来图形中间为1
for(int i=1;i<b.length;i++){
for(int j=1;j<b[i].length;j++){
b[i][j]=b[i-1][j-1]+b[i-1][j+1];//找规律
}
}
for(int i=0;i< b.length;i++){
for(int j=0;j<b[i].length-1;j++){
if(b[i][j]==0)
System.out.print("\t");//这里相比于上面我们多了一步判断,目的是找到特殊情况
else
System.out.print(b[i][j]+"\t");
}
}
}
}
下面就是运行的效果图
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
总结:杨辉三角其实也是一种算法能力的体现,这里有基本的算法分析,所以强化我们的算法能力还是很重要的