打印tree - javascript

来源:互联网 发布:h265网络直播编码器 编辑:程序博客网 时间:2024/05/22 18:56

    一棵"树"就是由空格、星号和回车组成的。

    我们用a,代表空格。

    注意:空格在HTML编码为:“ ”。

aaaa*aaa***aa*****a****************aaaa*aaaa*aaaa*aaaa*aaaa*

    首先“树头”部分由3部分组成:空格部分、左树头、右树头。

    空格就是递减的过程:

        for (var i = treeRadius; i > k; i--) {        document.write("  ");            // System.out.print(" ");        }
    左树头,包括中线

        for (var i = 0; i < k + 1; i++) {            // System.out.print("*");            document.write("*");        }
    右树头,递增过程:

        for (var j = 0; j < k; j++) {            // System.out.print("*");        document.write("b");        }


    然后,“树干”部分由2部分组成:空格部分和中线部分

    空格就是按照指定的半径数“占位”:

        for (var j = 0; j < treeRadius; j++) {            // System.out.print(" ");        document.write("  ");        }
    中线就是每次循环时打印一个“*”

        for (var j = 0; j < 1; j++) {            // System.out.println("*");        document.write("*");document.write("</br>");        }

    最后,使用“树高”来限定外循环。

    for (var i = 0; i < treeHeight; i++) {        // some code...    }


    在IE的实现效果:

        *
      ***
    *****
  *******
*********
        *
        *
        *
        *
        *


参考文章:《标准计算答案(java)》


代码下载:http://pan.baidu.com/s/1hNZ3K


附:

    tree.js

/** *  * @param treeHeight * @param treeRadius */function printTreeBody(treeHeight, treeRadius) {    for(var k = 0; k < treeHeight; k++) {        for (var i = treeRadius; i > k; i--) {        document.write("  ");            // System.out.print(" ");        }        for (var i = 0; i < k + 1; i++) {            // System.out.print("*");            document.write("*");        }        for (var j = 0; j < k; j++) {            // System.out.print("*");        document.write("b");        }        // System.out.print("/n");        document.write("</br>");    }};/** *  * @param treeHeight * @param treeRadius */function printTreeTrunk(treeHeight, treeRadius) {        for (var i = 0; i < treeHeight; i++) {                for (var j = 0; j < treeRadius; j++) {            // System.out.print(" ");        document.write("  ");        }        for (var j = 0; j < 1; j++) {            // System.out.println("*");        document.write("*");document.write("</br>");        }    }};function printTree(height, radius) { // tree body    printTreeBody(height, radius);    // tree trunk    printTreeTrunk(height, radius);};

    demoTree.html

<!doctype html><html lang="en"> <head>  <meta charset="UTF-8">  <meta name="Generator" content="EditPlus®">  <meta name="Author" content="">  <meta name="Keywords" content="">  <meta name="Description" content="">  <title>Document</title>    <script type="text/javascript" src="tree.js" > </script> </HEAD>  <BODY><INPUT id="tree01" onclick="printTree('5','4')" type="button" value="tree">  </body></html>




0 0
原创粉丝点击