隐藏页面特效

js设计杨辉三角

使用递归算法执行效率非常低

 

 

因此,我们可以定义两个数组,数组1为上一行数字列表,数组2为下一行数字列表,为代求数组。

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

我们可以使用双层循环嵌套结构,外层循环结构遍历高次方的幂数(行数),内层循环每次方的项数(列数)

核心代码如下:

var a1= [1,1]; var a2 = [1,1]; for(var i=2;i<=n;i++){ //从第三行开始遍历,n为幂数 a2[0]=1; //定义下一行数组的第一个元素为1 for(var j=1;j<i-1;j++){//从第二个数字开始,遍历每一行 a2[j] = a1[j-1]+a1[j]; } a2[j]=1;//定义下一行数组的最后一个元素为1 for(var k=0;k<=j;k++){//把下一行的数组值给上一行数组,从而实现交替循环 a1[k] = a2[k]; } }

完成算法设计后,就可以设计输出数表,完整代码如下:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div,p{ text-align: center; } span{ display: inline-block; padding: 4px 3px; } </style> </head> <body> <script> //输出函数 //判断是否为数字 function printYH(v){ if(typeof v=="number"){ var w = 40; if(n>30){ w = (n-30)+40; } //随着输入数字的增大,适当调整span的宽度 var s= '<span style="padding:4px 2px;display:inline-bloke;text-align:center;width:'+w+'px">'+v+'</span>'; document.write(s); }else { document.write(v) } } //输入接口 var n = prompt('请输入幂数:',9);//默认值9 n=n-0; var t1 = new Date(); var a1= [1,1]; var a2 = [1,1]; printYH('<div style="text-align=center;"> '); printYH(1); printYH("<br>"); for(var i=2;i<=n;i++){ //从第三行开始 printYH(1);//每一行第一个数字 for(var j=1;j<i-1;j++){//从第二个数字开始,遍历每一行 a2[j] = a1[j-1]+a1[j]; printYH(a2[j]); } a2[j]=1;//每一行最后一个数字 for(var k=0;k<=j;k++){//把下一行的数组值给上一行 a1[k] = a2[k]; } printYH(1); printYH("<br>"); } printYH("</div>"); var t2 = new Date(); printYH("<p style='text-align=center;'>耗时为(毫秒):"+(t2-t1)+"</p>"); </script> </body> </html>

演示效果:

 


__EOF__

本文作者lngrid ln grid
本文链接https://www.cnblogs.com/ysw-blog/p/16121133.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   希希sw  阅读(404)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示