实现杨辉三角 - JavaScript算法(一)

是时候开启新的篇章了,积累下算法,可能很多都不实用,但有趣就行。

现在前后端分离了,很多数据上的问题,前端尽量不用处理,因为避免响应时间过长,反而影响了用户的体验,所以在算法上来讲,前端一般来说,用不上很多算法,但是,算法其实很锻炼人的思维,就算用不上,也会潜移默化地提升你的编码能力。

废话不多说了,趁着工作空余时间,立马上代码,给大家快乐,快乐

function run(x, y){  // 杨辉三角特性
  if(x == 1) return 1; // 头1 
  else if(x == y) return 1; // 尾1
  else return (run(x-1, y-1) + run(x, y-1)); // 其他值是上一行相邻两数之和
}
let x = 1, y = 1; // 初始化 第一行第一列开始
setInterval(() => {
  let text = ''; // 一行打印文本
  if(x > y){
      x = 1;  // 换行
      y += 1;
  }
  for(; x < y+1; x++){ // for循环拼接一行文本
    if(x != 1){  // 间隔(空格)符
      text += '\0';
    }
    text += run(x, y);
  }
  console.log(text);
}, 1000);

上面代码可以直接copy至控台输出,不过不要停留得太久,打印到第n行的时候,会很卡呦,所以你可以往里面加点判断,如果y>=n(执行行数)了,就清除定时器,就行了(别忘记给定时器赋个值哦),下面就是我运行的效果图。

在这里插入图片描述
是不是很有趣呢,小心浏览器崩溃哦!

如果你喜欢我的这个系列的话,我会很开心的,后续我会陆陆续续地找一些更有趣的js算法,来供大家娱乐娱乐。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值