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>

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

镂空三角形

题目描述 把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果。在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,以便看看效果。 ...
  • u013624794
  • u013624794
  • 2014年02月22日 08:45
  • 1241

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

1、打印三角形 document.writeln("打印三角形"); for(var i=0;ii;j--){ document.w...
  • lokeyluoqi
  • lokeyluoqi
  • 2015年04月13日 11:25
  • 3333

在js中如何打印菱形

document.write(" "); var row=Number(prompt("输入行数")); for(var i=1;i2*row-1;i++){ var stars=2*row...
  • yangwenlongsss
  • yangwenlongsss
  • 2017年08月01日 18:31
  • 2204

JavaScript打印任意奇数行菱形

网上大部分打印菱形基本上是先打印出上半部分,再打印出下半部分,比较复杂,以下给出简单的方法: 直接上代码: var row=Number(prompt('请输入打印行数(需为奇数):')); va...
  • zhuxiandan
  • zhuxiandan
  • 2017年08月01日 10:12
  • 212

js实现菱形的输出

  • 2014年10月17日 18:29
  • 1018B
  • 下载

在JavaScript中使用for循环打印菱形

  • XiaoMeiU
  • XiaoMeiU
  • 2018年01月04日 22:41
  • 40

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

直角三角形 for(var i=0;i
  • Call_me_small_pure
  • Call_me_small_pure
  • 2017年09月15日 11:49
  • 1092

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

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

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

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

JS下打印三角形(其实和C语言一样的套路)

  • baidu_33163851
  • baidu_33163851
  • 2016年05月16日 16:41
  • 2172
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javascript打印菱形和镂空菱形
举报原因:
原因补充:

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