JavaScript中简单的算法:空心梯形,空心菱形,回形

1.空心菱形

    /*
    * 空心菱形
    * @param Number n 输入的行数
    * @return String`
    * */
            function ling(n){
                if(n==1) return 1;
                var string = '';
                var kong = '';
                var s='';
                var ko='';
                for(var i=1;i<=n;i++){
                    for(var k=n-1;k>=i;k--){
                        kong+=' ';
                    }
                    for(var j=1;j<=2*i-1;j++){
                        if(j==1 || j==2*i-1){
                            string+='*';
                        } else {
                            string+=' ';
                        }
                    }
                    console.log(kong+string);
                    string='';
                    kong = '';
                }
                for(var a=n-1;a>=1;a--){
                    for(var b=n-1;b>=a;b--){
                        ko+=' ';
                    } 
                   for(var c=1;c<=2*a-1;c++){
                        if(c==1 || c==2*a-1){
                            s+='*';
                        } else {
                            s+=' ';
                        }
              }
            console.log(ko+s);
            ko="";
            s="";
        }
    }
    ling(4);

2.空心梯形

    /*
    * 空心梯形
    * n:表示梯形第一行显示的星星的个数,如果n是偶数,则星星的个数会剪掉1
    * */
        function tiXing(n,m){
            var string='';
        //通过第一行星星的个数计算星星从第几行开始显示
        n = Math.floor((n+1)/2);
        for(var i=1;i<=m;i++){
            if(i>=n){
                for(var j=1;j<=2*i-1;j++){
                    if(i==n || i==m){
                        string+='* ';
                    } else {
                        if(j==1 || j==2*i-1){
                            string+='* ';
                        } else {
                            string+='  ';
                        }
                    }
                }
                console.log(string); 
               string='';
            }
        }
    }
    tiXing(6,10);

3.回形

    /*
    * 回形
    * @param n int 外层的行数或列数
    * @param m int 内层的行数或列数
    * */
    function hui(n,m){
        var s = '';    
        var tmp=0;
        //判断下,如果用户给的内部或外部的列数不满足条件的时候,给一个默认值
        if(Math.floor(n/2)<=4){
            n=8;    }
        if(m>=(Math.floor(n/2)-2)){
            m=2;
        }
        var num = (n-m*2);
        //循环
        for(var i= 1;i<=n;i++){
            for(var j=1;j<=n;j++){
                if(i==1 || i==n){
                    s+='* ';
                } else if(i==m+1 || i==(n-m)){
                    if(j==1 || j==n || (j>=(m+1)&& j<=(n-m))){
                        s+='* ';
                    } else{
                        s+='  ';
                    } 
               }else if((i>1 && i<m+1) || i>=(n-m)&& i<n) {
                    if(j==1 || j==n){
                        s+='* ';
                    } else{
                        s+='  ';
                    }
                } else {
                    if(j==1 || j==n){
                        s+='* ';
                    } else if(j==m+1 || j==(n-m)){
                        s+='* ';
                    }else{
                        s+='  ';
                    }
                }
            }
            console.log(s);
            s='';
        }
    }
    hui(10,3);

4.分割字符

    /*
    * 从前往后分隔字符串
    * @param str string 要分隔的字符串
    * */
    //从前往后的每三个字符加一个逗号
    function fen(str){
        //统计字符串的长度
        var len = str.length;
        var newStr='';
        for(var i=0;i<len;i++){
            if((i)%3==0){
                newStr+=",";
            }
            newStr+=str[i];
        }
        newStr = newStr.slice(1);
        console.log(newStr);
    }
    fen('1234567732213211');
    console.log('++++++++++++++++++++++++++++++++++++++++++++');
    /*
     * 从后往前分隔字符串 
    * @param str string 要分隔的字符串
     * */
    //从后往前的每三个字符加一个逗号
    function fens(str){
        //统计字符串的长度
        var len = str.length;
        var newStr='';
        var strs='';
        var result='';
        for(var i=len-1;i>=0;i--){
            newStr+=str[i];
        }
        for(var i=0;i<len;i++){
            if((i)%3==0){
                strs+=",";
            }
              strs+=newStr[i];
        }
        strs = strs.slice(1);
        var num = strs.length;
        for(var i=num-1;i>=0;i--){
            result+=strs[i];
        }
        console.log(result);
    }
    fens('1234567732213211');
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,511评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,495评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,595评论 0 225
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,558评论 0 190
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,715评论 3 270
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,672评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,112评论 2 291
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,837评论 0 181
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,417评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,928评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,316评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,773评论 2 234
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,253评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,827评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,440评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,523评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,583评论 2 249

推荐阅读更多精彩内容

  • 1、一元一次方程根的情况 △=b2-4ac 当△>0时,一元二次方程有2个不相等的实数根; 当△=0时,一元二次方...
    abbatuu阅读 3,434评论 1 21
  • 那天下午像往常一样处理着手头上的事情,突然桌上的手机响了,一看是某办事处小陈打来的,赶紧接了起来,小陈问我屋必家的...
    红猪猪阅读 183评论 6 3
  • 我的大学室友月月有一段曾经我们都很羡慕的恋情,不是因为他们之间的感情多么的轰轰烈烈 多么的刻骨铭心,而是因为两...
    微笑118阅读 525评论 0 1
  • 问10个员工认为自己单位的食堂如何?大约有9个会回答不满意,即使再怎么改善,总是众口难调。今天说口味,明天说...
    旭浩阅读 733评论 4 0
  • 话是这么说,女性迎来了新的时代。虽然女性的自主权利越来越多,可本身的一些担子也平衡了旧时的教条。多多少少都会在一些...
    百_叶阅读 174评论 0 0