001-抽象思维训练

使用抽象思维打印:

矩形、空心矩形
正方形、空心正方形
梯形、空心梯形
三角形、空心三角形:
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);

001-抽象思维训练_第1张图片
2016-08-07.png

你可能感兴趣的:(001-抽象思维训练)