算法学习——递推之杨辉三角

算法描述

杨辉三角

算法思路

  1. 将杨辉三角看成一个二维数组,开头和末尾都为1

  2. 第一行和第二行已经被前面的1给赋值了,所以我们直接从第三行开始赋值,a[2][1]开始,因为下标是从0开始的,a[2][1] = a[1][0]+a[1][1],也就是等于2,依次递推下去

  3. 打印(for循环),每打印出一行则换一行,System.out.println

我的打印处理没有处理好,如果数组有两位数,打印出来就不是很美观

算法实现

	Scanner scanner = new Scanner(System.in);
	int n = scanner.nextInt();
	int[][] a = new int [n][n];
	
	//初始化条件,头部和尾部都是为1
	for(int i=0;i<n;i++){
		a[i][0]=1;
		a[i][i]=1;
	}
	
	//第3行开始,下标为2
	for(int i=2;i<n;i++){
		//列从第二个开始,到倒数第二个,下标为1到n-1
		for(int j=1;j<n-1;j++){
			a[i][j] = a[i-1][j-1]+a[i-1][j];
		}
	}
	
	for(int i=0;i<n;i++){
		
		//画开头空格
		for(int m=n-i-1;m>0;m--){
			System.out.print(" ");
		}
		
		for(int j=0;j<=i;j++){
			System.out.print(a[i][j]+" ");
		}
	
		System.out.println("");	//一行结束换行
		}

结果

posted @ 2018-11-06 17:18  Stars-one  阅读(1023)  评论(0编辑  收藏  举报