首页 > 其他分享 >杨辉三角

杨辉三角

时间:2023-04-19 20:11:55浏览次数:35  
标签:currentInts list var length push 杨辉三角

杨辉三角需要考虑内容

  • 杨辉三角中的各部分数据是如何形成的
  • 打印输出过程中,每行到底需要空多少格,浏览器中直接居中展示即可,如果是文本中该如何显示
  • 未控制单个数字长度时候,展示出来曲线效果如何解决
  • 前几行都是一位数字,出现多位数字时候,未控制数字每个数字长度,出现重叠现象该怎么办



下面代码可直接拷贝到文本文件中,将文本文件后缀修改成.html,在浏览器中打开即可显示效果

使用HTML展示杨辉三角
<html>
    <head>
        <title>杨辉三角</title>
        <style>
            #main {
                text-align: center;
            }
            #dis {
                margin-top: 10px;
                background-color: #a2f2d0;
            }
            .label-v {
                text-align: center;
                display: inline-block;
            }
        </style>
    </head>
    <body>
        <div id="main">
            <div>
                <input id="number" type="number" value="1" style="font-weight: bold; height: 30px;" onchange="print();" />
            </div>
            <div id="dis">

            </div>
        </div>
    </body>
    <script>
        function print() {
            document.getElementById('dis').innerText = '';
            var num = document.getElementById("number").value;

            var list = [];
            if (num > 0) {
                var firstRow = [];
                firstRow.push(1);
                list.push(firstRow);
            }

            if (num > 1) {
                var secondRow = [];
                secondRow.push(1, 1);
                list.push(secondRow);
            }

            for (var i = 2; i < num; i++) {
                var currentInts = getInt(list[i - 1], i);
                list.push(currentInts);
            }
            var lastRow = list[list.length - 1];
            var max = lastRow[Math.floor(lastRow.length / 2)];
            var maxLength = (max + '').length;

            for (var i = 0; i < list.length; i++) {
                var rowDiv = document.createElement('div');

                for (var j = 0; j < list[i].length; j++) {
                    var cell = document.createElement('label');
                    cell.innerText = list[i][j];
                    cell.style = "width: " + (10 * maxLength) + "px";
                    cell.className = 'label-v';
                    
                    rowDiv.appendChild(cell);
                    if (j != list[i].length - 1) {
                        rowDiv.appendChild(createSpace());
                    }
                }
                
                document.getElementById('dis').appendChild(rowDiv);
            }
        };

        function createSpace() {
            var spaceDom = document.createElement('label');
            spaceDom.innerText = ' ';
            spaceDom.style = 'text-align: center';
            return spaceDom;
        }
        
        function getInt(pre, current) {
            var currentInts = [];
            currentInts.push(1);
            for (var i = 0; i < current; i++) {
                if (i < pre.length - 1) {
                    var val = pre[i] + pre[i + 1];
                    currentInts.push(val);
                }
                else {
                    currentInts.push(pre[i]);
                }
            }
            return currentInts;
        }
        
        window.onload = print();
    </script>
</html>

标签:currentInts,list,var,length,push,杨辉三角
From: https://www.cnblogs.com/uleftright/p/17334484.html

相关文章

  • python习题-杨辉三角
    【题目描述】输出n(0<n)行杨辉三角形,n由用户输入。【源代码程序】n=int(input("请输入要打印的杨辉三角的行数:"))#初始化杨辉三角的第一行triangle=[[1]]#循环生成杨辉三角foriinrange(1,n):#初始化当前行的第一个元素为1row=[1]#循环生成当......
  • leetcode杨辉三角
    给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。出处:leetcode对于此题可以建立一个vector<vector<int>>,对外层开辟numRows行,对内层开辟从零开始每次加一个,并把头尾都置为一,然后根据杨辉三角的规律填入......
  • 杨辉三角
    杨辉三角题目描述本题为代码补全填空题,请将题目中给出的源代码补全,并复制到右侧代码框中,选择对应的编译语言(C/Java)后进行提交。若题目中给出的源代码语言不唯一,则只需选择其一进行补全提交即可。复制后需将源代码中填空部分的下划线删掉,填上你的答案。提交后若未能通过,除考虑填......
  • [安乐椅#15] 杨辉三角质数分布性质
    性质内容在杨辉三角中,质数仅存在于第2层。性质证明\(C_n^m\)\frac{0}12345670|1|2|3|4|5|6|7|......
  • 二维数组-杨辉三角
    输入:5输出:1 11 121 1331 14641 #include<iostream>#include<cstring>usingnamespacestd;intmain(){/*111121133114641*/inta[101][101]={};intn;scanf("%d",&am......
  • 杨辉三角,手动输入行数---Java
    packagepractice.people.apple;importjava.util.Scanner;publicclassYangHui{publicstaticvoidmain(String[]args){ Scannermyscanner=newScanner(Syste......
  • Java入门_二维数组_第二题_杨辉三角
    题目杨辉三角要求使用二维数组打印一个10行的杨辉三角思路第i行输出i个数。arr3[i][j]=arr3[i-1][j]+arr3[i-1][j-1];总结如上规律,代码实现并输......
  • 杨辉三角
    给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。示例1:输入:numRows=5输出:[[1],[1,1],[1......
  • A0杨辉三角
    publicclassA0{publicstaticvoidmain(String[]args){int[][]a=newint[10][10];for(inti=0;i<10;i++){......
  • 杨辉三角形
    给定一个正整数N,请你输出数在杨辉三角中第一次出现N是在第几个数?思路参考杨辉三角特点:对称性杨辉三角形左右两边数字对称相等。渐增性越往中间数字越大,除......