JS 实现等腰三角形(空心)和(实心)

JavaScript05

JS 实现等腰三角形(空心)和(实心),第1张

 等腰三角形(空心)

             *

            * *

           *   *

          *     *

        // 先实现等腰三角形(实心)

        // 第一行:j=1  打印:三(4-j)个空格,一(2*j-1)个星星

        // 第二行:j=2  打印:两(4-j)个空格,三(2*j-1)个星星

        // 第三行:j=3  打印:一(4-j)个空格,五(2*j-1)个星星

        // 第四行:j=4  打印:零(4-j)个空格,七(2*j-1)个星星

        // ......

        //  步骤一 :打印一行:空格+星星

        for(var i=1i<=2i++){

            document.write(' ')

        }

        for(var i=1i<=3i++){

            document.write('*')

        }

        //  步骤二 :打印四行:每一行都是空格加星星( 此为实心)

        for(var row=1row<=7row++){

            for(var i=1i<=(7-row)i++){

                document.write(' ')

            }

            for(var i=1i<=(2*row-1)i++){

                document.write('*')

            }

            document.write('<br/>')

        }

        //  步骤三:空心等腰三角形:在原来实心星星的地方,除了首尾,其他都是空格

        for (var row = 1 row <= 7 row++) {

            for (var i = 1 i <= (7 - row) i++) {

                document.write(' ')

            }

            //星星

            for (var i = 1 i <= (2 * row - 1) i++) {

                if (i == 1 || i == (2 * row - 1)) {

                    document.write('*')

                } else {

                    document.write(' ')

                }

            }

            document.write('<br/>')

        }

函数方法实现:

function triangle(num) {

            for (var rows = 1 rows <= num rows++) {

                for (var i = 1 i <= (num - rows) i++) {

                    document.write(' ')

                }

                for (var i = 1 i <= (rows * 2 - 1) i++) {

                    if (i == 1 || i == (rows * 2 - 1)) {

                        document.write('*')

                    } else {

                        document.write(' ')

                    }

                }

                document.write('<br>')

            }

        }

        triangle(6)        //此为6行

* * * *

* * *

* *

*

i=0 1 2 3

j=4 3 2 1

k=1 2 3 4

j=4-i

k=i+1

for(i=0,i<4,i++){

for(k=0,k<i+1,k++){

document.write(" ")

}

for(j=0,j<4-i,j++){

document.write("*")

}

document.write("<br>")

}

思路:i表示行数,j表示每一行对应的列*的个数,k为每一行左侧空格数

希望能对你有所帮助