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);

2016-08-07.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,353评论 25 708
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,766评论 18 399
  • 在我的故乡有着一只犬,它叫小黑。 它十分强壮,是村里的狗老大,有一天,小黑不在回家了,要回也是很晚了。一大早,我带...
    陈决阅读 242评论 1 1
  • Fragment嵌套Fragment要用getChildFragmentManager。 遇到一个问题,Fragm...
    bingoCode阅读 947评论 0 0
  • 不知起于何时,我开始变得懒于写东西,也不那么渴望发表什么了,反而是在印象笔记里塞了一大堆的杂七杂八的东西。像什么日...
    风不千山阅读 520评论 0 0