码迷,mamicode.com
首页 > 编程语言 > 详细

打印tree - javascript

时间:2015-04-15 21:34:13      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

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

    我们用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>




打印tree - javascript

标签:

原文地址:http://blog.csdn.net/xiaobin_hlj80/article/details/45063867

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!