实现杨辉三角 - 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算法,来供大家娱乐娱乐。

猜你喜欢

转载自blog.csdn.net/weixin_43759645/article/details/90711630