Java实现杨辉三角算法

package test;

public class YangHuiSanJiao {
	public static void main(String[] args) {
		//杨辉三角有什么特点
		//外层都是1,内层数是两个数的和
		/*1
		11
		121
		1331
		14641*/
		//大概的思路就是声明一个二维数组
		int[][] i = new int[10][];
		//为什么这里还可以再new一个数组
		//每一行就是一个数组,每一个数组中,又包含一个数组
		//现在相当于有10个数组,但是这十个数组的元素不固定,需要通过for循环来赋值
		//第一个数组没有什么规律,就是只有一个数,而且是1,所以直接指定
		//一般来说,应该是i[0]=某一个数,但是这里是一个数组,
		//然后指定第一行这唯一的一个数就是1
		i[0] = new int[1];
		i[0][0] = 1;
		for (int j = 1; j < i.length; j++) {
			i[j] = new int[j+1];
			i[j][0] = i[j][j] = 1;
			//中间元素如何指定
			for (int j2 = 1; j2 < j; j2++) {
				i[j][j2] = i[j-1][j2-1] + i[j-1][j2];
			}
		}
		//现在开始输出元素
		for (int j3 = 0; j3 < i.length; j3++) {
			//二维数组如何遍历
			for (int k = 0; k < i[j3].length; k++) {
				System.out.print(i[j3][k]+" ");
			}
			System.out.println();
		}
	}
}

  

猜你喜欢

转载自www.cnblogs.com/codeXi/p/12951102.html