经典算法-打印杨辉三角形

1.首先什么是杨辉三角形

                                                                                                        

2.首先找规律

 

(1)、从图中我们不难发现每一行的开始和结尾都是1

(2)、我们把每一行看成一个数组,整个杨辉三角形看起来就是一个二维数组,数组长度为6的

(3)、我们先来看第2行和第3行的计算关系,假设第3行的数据为int[] a2= {1,2,1},第4行的数据为int[] a3 = new int[4],a3[0]和a3[3]=1,a3[1]=a2[0]+a2[1],a3[2]=a2[1]+a2[2];即a2和a3的关系为a3[i] = a2[i-1]+a2[i]

(4)、综合2,3分析所得结论,假定杨辉三角形数组为int[]  t = new int[6],即t的值为{a0,a1,a2......a5},得到第4行的数据的第二个元素的值t[4-1]

[2-1] = t[4-1-1][2-1-1]+t[4-1-1][2-1],抽取变量4-1即为x值,2-1即为y值,所以公式最终为t[x][y]=t[x-1][y-1]+t[x-1][y]

  

/**
 *              1
 *            1   1
 *          1   2   1
 *        1   3   3   1
 *      1   4   6   4   1
 *    1   5   10  10  5   1
 * @author xiaoyu
 *
 */
public class Yanghuitriangle {
       
	 public static void main(String args[]){ 
		 int i,j; int a[][];
	     a=new int[8][8]; 
	     for(i=0;i<8;i++){          
				 a[i][i]=1;         //构建二维数组架子
				 a[i][0]=1;
	     }		 
	     for(i=2;i<8;i++){ 
		  for(j=1;j<=i-1;j++){
	          a[i][j]=a[i-1][j-1]+a[i-1][j];
	      }
	 }
	 for(i=0;i<8;i++){ 
		  for(j=0;j<=i;j++){
	           System.out.printf(" "+a[i][j]);
	      }
	      System.out.println();
	 }
}

}

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值