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>

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

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

在js中如何打印菱形

document.write(" "); var row=Number(prompt("输入行数")); for(var i=1;i2*row-1;i++){ var stars=2*row...

输出菱形的算法!

本算法其实不能称之为算法,可以说是偷懒型的数学模型。首先将菱形的两个对角线连起来,交点设为坐标中心(0,0),那么绘制的菱形的范围就在|x|+|y| #include #define abs(a...

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

直角三角形 for(var i=0;i

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

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

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

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

使用for循环输出空心的菱形的思路

之前已经成功写过一次代码,今天重新看这个题目时,一下子又没了思路,在草稿纸上比划了大概十分钟才想到实现的思路。思路跟上次实现的完全一样,发现时间长了就忘记了!真是好记性不如烂笔头,何况我这么差的记性呢...

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

直角三角形 for(var i=0;i

C语言打印菱形

  • 2014年04月02日 08:53
  • 144KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javascript打印菱形和镂空菱形
举报原因:
原因补充:

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