javascript 实现杨辉三角

杨辉三角, 如图

问题:用js打印一个杨辉三角

规律:通过观察, 得出如下规律

    1) 每一行设为m行, 每行上面的某个元素, 设为第n个元素

    2) 每一行上面, 第一个元素为1, 最后一个元素为1

    3) 第m行上面, 有m个元素

    4) 第m行上面的第n个元素的值, 等于第m-1行上面第n个元素与第m-1行上面第n-1个元素的值的和

        用排列组合公式表示为:C(m, n) = C(m-1, n) + C(m -1, n -1)

代码实现:

// 假设当前行为第m行, 当前元素为第n个元素
function combine (m, n) {
   if (n == 0) {           // 每行第0个元素为1
       return 1;
   } else if (m == n) {    // 每行最后一个元素为1
       return 1;
   } else {                // 其他情况用公式实现
       return combine(m - 1, n) + combine(m - 1, n - 1);
   }
}
	
function put (len) {
   for (let i = 0; i < len; i++) {      // 遍历每一行
      for (let j = 0; j <= i; j++) {    // 遍历每行上面每个元素
	  document.write(combine(i, j) + ' ');
      }
      document.write('<br/>');
   }
 }
 put(5);


  • 15
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值