javascript打印菱形和镂空菱形

原创 2016年08月30日 14:40:39
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js菱形</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
    </style>
</head>
<body>
<script type="text/javascript">
   window.onload=function(){
       var rows=window.prompt("请输入行");
            if(rows%2==0){
              rows=Math.floor(parseInt(rows));
            }
            var half=parseInt(rows/2);//正三角形的行数
            var h=half+ 1;  //倒三角形的行数
            var q=h;
            /*菱形*/
            for(var i=0;i<half;i++){  //i表示当前三角形的行数
                for(var k=half;k>=i;k--){
                    document.writeln("<div style='width: 10px;height: 10px;display: inline-block;'></div>")
                }
                for(var j=0;j<2*i+1;j++){ //正三角形的每行*的个数,与当前行i的关系:j=2*i+1(i递增变化)
                    document.writeln("<div style='width: 10px;height: 10px;display: inline-block;'>*</div>")
                }
                document.writeln("<br/>");
            }
            for(;h>0;h--){//h是当前倒三角形的行数
                   for(var m=q;m>=h;m--){
                       document.writeln("<div style='width: 10px;display: inline-block;'></div>");
                   }
                   for(var n=0;n<2*h-1;n++){//倒三角形的每行*的个数,与倒三角形的总行数h的关系:n=2*h-1(h递减变化)
                       document.writeln("<div style='width: 10px;height: 10px;display: inline-block;'>*</div>");
                   }
                   document.writeln("<br/>");
             }
            // 镂空菱形
           for(var i=0;i<half;i++){
               for(var k=half;k>=i;k--){
                   document.writeln("<div style='width: 10px;display: inline-block;'></div>")
               }
               for(var j=0;j<2*i+1;j++){
                   if(j==0||j==2*i){//只打印每行第一个*和最后一个*(因为j<2*i+1;所以j的最大值为2*i)
                       document.writeln("<div style='width: 10px;display: inline-block;'>*</div>");
                   }
                   else {
                       document.writeln("<div style='width: 10px;display: inline-block;'></div>");
                   }
               }
               document.writeln("<br/>");
           }
           var h=half+1;
           for(;h>0;h--){
               for(var m=q;m>=h;m--){
                   document.writeln("<div style='width: 10px;display: inline-block;'></div>");
               }
               for(var n=0;n<2*h-1;n++){
                   if(n==0||n==2*h-2){//只打印每行第一个*和最后一个*(因为n<2*h-1;所以n的最大值为2*h-2)
                       document.writeln("<div style='width: 10px;display: inline-block;'>*</div>");
                   }
                   else {
                       document.writeln("<div style='width: 10px;display: inline-block;'></div>")
                   }

               }
               document.writeln("<br/>");
           }
        }
   /*
    *   测试数据:
    *   rows=13
    *   half=6
    * i,h控制行,j,n控制列。外层循环控制行数,内层循环控制列数
    *  行数(i)    正三角形星号数(j)   倒三角形星号数(n)          空格数
    6     *   0             1                                            7
    5     *   1             3                                            6
    4     *   2             5                                            5
    3     *   3             7                                            4
    2    *   4             9                                            3
    1   *   5            11                                            2
    *   6                                 13                       1
    *   7                                 11                       2
    *   8                                 9                        3
    *   9                                 7                        4
    *   10                                5                        5
    *   11                                3                        6
    *   12                                1                        7
    *  j与行数i的关系: j=2*i+1
    *  n与half的关系:                  n=2*(half+1)-1=2*half+1;(在示例中half+1为倒三角形的行数即h,故n=2*h-1)


    * */
</script>
</body>
</html>

版权声明: 千里之行,始于足下!

相关文章推荐

javascript打印完整金字塔型_完整菱形_空心菱形_思路算法详解_js源代码

文西马龙:http://blog.csdn.net/wenximalong/ 在第23讲有作业,如下图所示: 分析过程如下: (1)先打印一个星号并换行 documen...

韩顺平_轻松搞定网页设计(html+css+javascript)_第24讲_js案例讲解_js自定义函数_学习笔记_源代码图解_PPT文档整理

文西马龙:http://blog.csdn.net/wenximalong/ 关于for循环 案例: 打印一行10个星号 ① for(var i=0;i<10;i++){ ...

用JavaScript打印三角形、菱形、空心菱形

1、打印三角形 document.writeln("打印三角形"); for(var i=0;ii;j--){ document.w...

js绘制菱形(空心和实心)

js绘制菱形,其实很简单,只要发现其中的规律,就可以了,代码如下,首先是空心var n=window.prompt("请输入n"); n=2*n-1; var temp = parse...

在JavaScript中用for循环输出等腰、直角三角形、菱形

直角三角形 for(var i=0;i<10;i++){ for(var j=0;j <i;j++){ document.write("*"); ...

C语言打印菱形

  • 2014-04-02 08:53
  • 144KB
  • 下载

循环打印菱形字母

要求:打印出一个菱形的字母,从字母A开始. 代码: package com.huawei.mianshi; public class Demo2 { private static in...

C语言打印菱形

内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)