JavaScript中簡單的算法:空心梯形,空心菱形,回形

1.空心菱形

    /*
    * 空心菱形
    * @param Number n 輸入的行數(shù)
    * @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:表示梯形第一行顯示的星星的個數(shù),如果n是偶數(shù),則星星的個數(shù)會剪掉1
    * */
        function tiXing(n,m){
            var string='';
        //通過第一行星星的個數(shù)計算星星從第幾行開始顯示
        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 外層的行數(shù)或列數(shù)
    * @param m int 內(nèi)層的行數(shù)或列數(shù)
    * */
    function hui(n,m){
        var s = '';    
        var tmp=0;
        //判斷下,如果用戶給的內(nèi)部或外部的列數(shù)不滿足條件的時候,給一個默認值
        if(Math.floor(n/2)<=4){
            n=8;    }
        if(m>=(Math.floor(n/2)-2)){
            m=2;
        }
        var num = (n-m*2);
        //循環(huán)
        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){
        //統(tǒng)計字符串的長度
        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){
        //統(tǒng)計字符串的長度
        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');
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,565評論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,115評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,577評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,514評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,234評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,621評論 1 326
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,641評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,822評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,380評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,128評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,319評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,879評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,548評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,970評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,229評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,048評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,285評論 2 376

推薦閱讀更多精彩內(nèi)容

  • 1、一元一次方程根的情況 △=b2-4ac 當△>0時,一元二次方程有2個不相等的實數(shù)根; 當△=0時,一元二次方...
    abbatuu閱讀 3,896評論 1 21
  • 那天下午像往常一樣處理著手頭上的事情,突然桌上的手機響了,一看是某辦事處小陳打來的,趕緊接了起來,小陳問我屋必家的...
    紅豬豬閱讀 208評論 6 3
  • 我的大學室友月月有一段曾經(jīng)我們都很羨慕的戀情,不是因為他們之間的感情多么的轟轟烈烈 多么的刻骨銘心,而是因為兩...
    微笑118閱讀 567評論 0 1
  • 問10個員工認為自己單位的食堂如何?大約有9個會回答不滿意,即使再怎么改善,總是眾口難調(diào)。今天說口味,明天說...
    旭浩閱讀 812評論 4 0
  • 話是這么說,女性迎來了新的時代。雖然女性的自主權(quán)利越來越多,可本身的一些擔子也平衡了舊時的教條。多多少少都會在一些...
    百_葉閱讀 205評論 0 0