设计杨辉三角

利用浏览器打印一个杨辉三角

案例介绍
① 设计打印输出一个行为自定义的杨辉三角形
② 找出杨辉三角形的特点

案例设计
① 数组的声明和使用
② 使用for循环来对数组进行赋值和输出
③ 根据幂数的增大,适当调整标签的宽度

实施方案
① 输入接口,用来接收用户设置幂数
② 第一列和对角线值为1,其它列的值是其正上方元素和其左上方元素之和。
③ 对数组进行赋值并打印输出

效果图:

1
在这里插入图片描述
2
在这里插入图片描述
源码:

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>输出杨辉三角</title>
    <script type="text/javascript">
        function print(v) {	//输出函数
            //如果传递值为输出的数字,则包含在一个<span>标签中,以方便CSS控制
            if (typeof v == "number") {
                var w = 40; 	//默认<span>标签宽度
                if (n > 30) w = (n - 30) + 40; 	//根据幂数的增大,适当调整<span>标签的宽度
                var s = '<span style="padding:4px 2px;display:inline-block;text-align:center;width:' + w + 'px;">' + v + '</span>';
                document.write(s); 	//在页面中输出字符串
            }
            else {	//如果参数值为字符串,说明是输出其他字符串
                document.write(v); 	//则调用document对象的write()方法直接输出
            }
        }
        //输入接口,用来接收用户设置幂数
        var n = prompt("请输入幂数:", 9); 	//默认值为9
        n = n - 0;	//把输入值转换为数值类型
        var t1 = new Date();
        var a1 = [1, 1], a2 = [1, 1]; 	//生命并初始化数组
        print('<div style="text-align:center;">'); 	//输出一个包含框
        print(1); 	//输出第一行中的数字
        print("<br />");
        for (var i = 2; i <= n; i++) { 	//从第三行开始,遍历每一行
            print(1); 	//输出每一行中第一个数字
            for (var j = 1; j < i - 1 ; j++) { 	//从第2个数字开始,遍历每一行
                a2[j] = a1[j - 1] + a1[j];
                print(a2[j]); 	//输出每一行中中间的数字
            }
            a2[j] = 1; 	//补上最后一个数组元素的值
            for (var k = 0; k <= j; k++) {	//把上一行数组的值传递给下一行数组
                a1[k] = a2[k];
            }
            print(1); 	//输出每一行中最后一个数字
            print("<br />");	//输出换行符
        }
        print("</div>");	//输出包含框的封闭标签
        var t2 = new Date();
        print("<p style='text-align:center;'>耗时为(毫秒):" + (t2 - t1) + "</p>");
    </script>
</head>
<body>
</body>
</html>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值