001-抽象思维训练

作者: 霄峰 | 来源:发表于2016-08-29 22:48 被阅读37次

    使用抽象思维打印:

    矩形、空心矩形
    正方形、空心正方形
    梯形、空心梯形
    三角形、空心三角形:
    
    var printStr = '';
    
    //基本功能:打印指定数量的字符
    function printS(n, str){
      for(var i = 0; i < n; i++){
        printStr += str;
      }
    }
    
    //基本功能:换行
    function n(){
      printStr += "\n";
    }
    
    //基本功能:空心
    function kx(cols, str){
      printS(1, str);
      printS(cols-2, ' ');
      printS(1, str);
    }
    
    //基本功能:控制:梯形|三角形|是否空心
    function xz(rows, cols, iskx){
      //开始执行
      for(var i = rows; i > 0; i--){
        if(iskx == true){
          //第一行或最后一行
          if(i == rows || i == 1){
            printS(i, ' ');
            printS(cols, '*');
          }else{
            printS(i, ' ');
            kx(cols, '*');
          }
          n();
        }else{
          printS(i, ' ');
          printS(cols, '*');
          n();
        }
        //递增2
        cols += 2;
      }
    }
    
    //功能:矩形
    function jx(a, b){
      for(var j = 0; j < a; j++){
        printS(b, '*');
        n();
      }
    }
    jx(5, 10);
    n();
    
    //功能:正方形
    function zfx(a){
      jx(a, a);
    }
    zfx(5);
    n();
    //功能:空心矩形
    function kjx(rows, cols){
      //条件判断
      if(rows <= 2 || cols <= 2){
        console.log('不能形成环!');
        return false;
      }
    
      //执行
      for(var i = 0; i < rows; i++){
        //第一行或最后一行
        if(i == 0 || i == rows-1){
          printS(cols, '#');
        }else{
          kx(cols, '#');
        }
        n();
      }
    }
    
    kjx(5, 10);
    n();
    
    //功能:空心正方形
    function kzfx(a){
      kjx(a, a);
    }
    // kzfx(2);
    kzfx(20);
    
    // 功能:梯形
    function tx(rows, cols){
      if(cols <= 1){
        console.log('不能形成梯形');
        return false;
      }
      xz(rows, cols, false);
    }
    tx(5,3);
    
    //功能:三角形
    function sjx(rows){
      xz(rows, 1, false);
    }
    sjx(5);
    
    //功能:空心梯形
    function kxtx(a, b){
      if(b <= 1){
        console.log('不能形成梯形');
        return false;
      }
      xz(a, b, true);
    }
    kxtx(5, 3);
    
    //功能:空心三角形
    function kxsjx(a){
      xz(a, 1, true);
    }
    kxsjx(5);
    
    console.log(printStr);
    
    
    2016-08-07.png

    相关文章

      网友评论

        本文标题:001-抽象思维训练

        本文链接:https://www.haomeiwen.com/subject/isxrsttx.html