java算法3——巴斯卡三角形(杨辉三角形)

  巴斯卡三角形是依次罗列出二项式不同次幂的系数,并且高次幂的系数可以通过低一级次幂的系数算出来。三角形每行边上都是1,具体请看图:
java算法3——巴斯卡三角形(杨辉三角形)_第1张图片
解题思想:使用list集合,并填充第一行和第二行int数组为1;以后每增加一行,int数组开头和结尾填充1,中间数据根据自己所在位置坐标n,通过上一行数据的位置n-1和n的和来计算。

代码如下:

import java.util.ArrayList;
import java.util.List;

/*
帕斯卡三角形 
杨辉三角,又名 贾宪三角形 
*/ 
public class YangHui_Triangle {
     
	public static void main(String[] args) {
     
		data(10);
	}
	
	public static void data(int n) {
     
		List<int[]> list = new ArrayList<int[]>();
		int[] x0 = {
     1};
		int[] x1 = {
     1,1};
		list.add(x0);
		list.add(x1);
		for(int y=3;y<=n;y++) {
     
			int[] x = new int[y];
			int[] x_pre=list.get(y-2);
			for(int z=0;z<x.length;z++) {
     
				if(z==0) {
     
					x[0] = 1;
				}else if(z==x.length-1) {
     
					x[z] = 1;
				}else {
     
					x[z] = x_pre[z-1]+x_pre[z];
				}
			}
			list.add(x);
		}
		for(int[] x:list) {
     
			for(int y:x)System.out.print(y+" ");
			System.out.println();
		}
	}
}

打印结果:
java算法3——巴斯卡三角形(杨辉三角形)_第2张图片

你可能感兴趣的:(基础算法,java,算法)