一、杨辉三角的简述
杨辉三角形,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。在我国南宋数学家杨辉所著的《详解九章算术》(1261年)一书中用如图的三角形解释二项和的乘方规律。
二、那么我们如何运用java实现杨辉三角呢?我提供了两种方法
方法一:
我们观察杨辉三角的图可知杨辉三角的值是上一行的跟它相邻的元素之和,而当我们给第一行元素赋值1,就可以计算出杨辉三角的所有值。
import java.util.Scanner;
public class YHSJdemo1 {
public static void main(String[] args){
System.out.println("请输入杨辉三角的行数");
Scanner scanner = new Scanner(System.in);
int row =scanner.nextInt();
int[][] arr = new int[row][row*2+1];
arr[0][row] = 1;
for(int i=1;i< arr.length;i++){
for(int j=1;j<arr[i].length-1;j++){
arr[i][j] = arr[i-1][j-1]+arr[i-1][j+1];
}
}
for(int i=0;i< arr.length;i++) {
for (int j = 0; j < arr[i].length; j++) {
if(arr[i][j]!=0) {
System.out.print(arr[i][j] + "\t");
}else{
System.out.print("\t");
}
}
System.out.println();//每遍历一层输入到下一行
}
}
}
先制表,给相应位置上赋值,未赋值的为int的默认值0
此时是
int[][] arr = new int[row][row*2];
导致无法给最后一行的最后一个元素赋值,所以需要再加一列
当
int[][] arr = new int[row][row*2+1];
则:
还需用制表符(\t)将其转换
方法二:
如上图观察可知,杨辉三角的第一行的第一个元素和最后一个元素为1
在代码可理解为每一次行数循环结束后,第一列和最后一列的元素是1
import java.util.Scanner;
public class YHSJdemo3 {
public static void main(String[] args) {
System.out.println("请输入杨辉三角的行数");
Scanner scanner = new Scanner(System.in);
int row = scanner.nextInt();
int arr[][] = new int[row][];
//计算杨辉三角的值
for(int i=0;i<arr.length;i++){//控制行数
arr[i]=new int[i+1];//每一次循环后计算二维数组的列数的空间
for(int j=0;j<arr[i].length;j++){//控制列数
if(j==0||j==arr[i].length-1){//杨辉三角每行的第一个元素和最后一个元素是1
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++){
for (int j=0;j<arr[i].length;j++){
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}
}