JS输出杨辉三角(带解析)

杨辉三角是一个经典的编程案例,它揭示了多次放二项式展开后各项系数的分布规律。简单描述,就是每行开头和结尾的数字为 1,出第一行外,每个数都等于它上方两数之和,如图所示。

 

设计思路

定义两个数组,数组 1 为上一行数字列表,为已知数组;数组 2 为下一行数字列表,为待求数组。假设上一行数组为 [1,1],即第二行数字。那么,下一行数组的元素值就等于上一行相邻两个数字的和,即为 2,然后数组两端的值为 1,这样就可以求出下一行数组,即第三行数字列表。求第四行数组的值,可以把已计算出的第三数组作为上一行数组,而第四行数字为待求的下一行数组,以此类推。

实现代码

使用嵌套循环结构,外层循环遍历高次方的幂数(即行数),内层循环遍历每次方的项数(即列数)。具体代码如下:

  1. function print(v){
  2. if (typeof v == "number") {
  3. var w = 30;
  4. if(n>30) w = (n-30) + 40;
  5. var s = '<span style="padding:4px 2px;display:inline-block;text-align:center;width:' + w + 'px;">'+v+'</span>';
  6. document.write(s);
  7. }else{
  8. document.write(v);
  9. }
  10. }
  11. var n = prompt("请输入幂数:",9);
  12. n = n - 0;
  13. var t1 = new Date();
  14. var a1 = [1,1];
  15. var a2 = [1,1];
  16. print('<div style=text-align:center;">');
  17. for (var i = 0;i <=n;i++){
  18. for (var j = 1; j < i + 2; j++) {
  19. print(c(i,j));
  20. }
  21. print("<br />");
  22. }
  23. print("</div>");
  24. var t2 = new Date();
  25. print("<p style='text-align:center;'>耗时为(毫秒):"+(t2-t1)+"</p>");
  26. function c(x,y){
  27. if ((y == 1) || (y == x + 1)) return 1;
  28. return c(x-1,y-1) + c(x-1,y);
  29. }

完成算法设计之后就可以设计输出数表。如图所示。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智慧浩海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值