javascript 机试题—蛇形数字

在论坛上看到一个javascript的机试题,自己试着写了写,基本上实现了题目的要求:

有条蛇它长度不固定,蛇头朝北顺时针盘旋着,请打印出如下图的蛇形矩阵。答题时间40分钟。
9  9  9  9  9  9  9
8  6  6  6  6  6  9
8  6  3  3  4  7  9
8  5  3  1  4  7
8  5  2  2  4  7
8  5  5  5  4  7
8  8  8  7  7  7

 

源代码:

  •  
    • <html xmlns=" http://www.w3.org/1999/xhtml" >
      <head runat="server">
          <title>无标题页</title>
          <script language="javascript" type="text/javascript">
              var maxNum=9;
              var maxRow=7;
              var maxCol=7;
              var $get=document.getElementById;
              function initTable()
              {
                  var tr=null;
                  var td=null;
                  var table=null;
                  var tbody=null;
                  table=document.createElement("table");
                  //table=$get("table");
                  tbody=document.createElement("tbody");
                  //tbody=$get("newbody");
                  table.id="table_1";
                  table.style.display="block";
                  table.width="200px";
                  table.height="200px";
                  table.border=1;
                  for(var rI=1;rI<=7;rI++)
                  {
                      tr=document.createElement("tr");
                      tr.id="tr"+rI;
                      for(var colI=1;colI<=7;colI++)
                      {
                          td=document.createElement("td");
                          td.id="td"+rI+""+colI;
                          tr.appendChild(td);
                      }
                      tbody.appendChild(tr);
                  }
                  table.appendChild(tbody);
                  document.body.appendChild(table);
                  //alert($get("table_1"));
              }
              function fillData()
              {
                  var table=null;
                  var num=1;
                  var numIndex=1;
                  var de=1;
                  var startRow=4;
                  var startCol=4;
                  var rowIndex=startRow;
                  var colIndex=startCol;
                  var cell=null;
                  var dnumIndex=0;
                  var dMaxnum=1;
                  var span=null;
                  for(num=1;num<=9;num++)
                  {
                      for(numIndex=1;numIndex<=num;numIndex++)
                      {
                          cell=$get("td"+rowIndex+""+colIndex);
                          //alert(rowIndex+""+colIndex+document.getElementById("td"+rowIndex+""+colIndex));
                          cell.appendChild(document.createTextNode(num+""));
                          //alert("de:"+de+"---rowIndex:"+rowIndex+"---colIndex:"+colIndex+"---dnumIndex:"+dnumIndex+"---num:"+num);
                          dnumIndex++;
                          if(dnumIndex>=dMaxnum)
                          {
                              de=(de+1)%4;
                              dnumIndex=1;
                              if(de%2==0)
                                  dMaxnum++;
                          }
                          switch(de)
                          {
                              case 0:
                                  rowIndex--;
                                  break;
                              case 1:
                                  colIndex++;
                                  break;
                              case 2:
                                  rowIndex++;
                                  break;
                              case 3:
                                  colIndex--;
                                  break;
                              default:
                                  break;
                          }
                          //alert("de:"+de+"---rowIndex:"+rowIndex+"---colIndex:"+rowIndex+"---dnumIndex:"+dnumIndex);
                      }
                  }
              }
          </script>
      </head>
      <body>
          <form id="form1" runat="server">
          <div id="s">
          </div>
          </form>
          <script language="javascript">
              //init();
              initTable();
              fillData()
          </script>
      </body>
      </html>

    • 长度不限制,程序可以稍作修改,通过传入的参数动态生成。

  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值