JavaScript實現(xiàn)打印星型金字塔功能實例分析
本文實例講述了JavaScript實現(xiàn)打印星型金字塔功能。分享給大家供大家參考,具體如下:
讓你用其它語言寫也是完全一樣的道理,
這道題估計大家在學習C語言的時候就見過……
也就是打印以下的鬼東西:
當時候看到循環(huán)結構的時候覺得很無聊,就相當不屑這題,沒有好好仔細想想,
因為要是放在JavaScript完全可以這樣寫,甚至還不算是JavaScript,僅僅就是一個html:
<html> <head> <meta http-equiv="content-type" content="text/html;charset=gb2312"/> </head> <body> &nbsp;&nbsp;* &nbsp;*** ***** &nbsp;*** &nbsp;&nbsp;* </body> </html>
這里之所以不用utf-8編碼是因為utf-8對于nbsp的處理與*的字體會導致排版錯亂,就是不是用標準的宋體字,從而導致最終的結果無法查看。
反正你出題人出多少行,我都可以復制粘貼上面的內(nèi)容完全可以實現(xiàn),但是,今天編程編到一定量,有點大數(shù)據(jù)概念的時候,又見到這題,仔細思考了一下,要是出題人要求輸出二十萬行這樣中間軸對稱的星型金字塔,我TMD就呵呵了。
所以還是要徹底搞明白這個怎么實現(xiàn),雖然在實際的編程中不會出現(xiàn)這樣的編程,但是,據(jù)說一些無聊的面試還是會出這題,至少,后來者問你C語言的時候,問你如果輸出二十萬行這樣的中間軸對稱的星型金字塔,你還是要會,這題如果第一次做不好做的。
一、基本目標
首先彈出一個輸入框,讓用戶輸入一個奇數(shù),畢竟軸對稱需要一個奇數(shù),
然后為了程序的健壯性,必須對用戶輸入的東西進行判斷,如果輸入的不是奇數(shù),就彈出提示,不再執(zhí)行后面的程序,怎么JavaScript判斷一個奇數(shù),我已經(jīng)在《JavaScript對數(shù)字的判斷與處理》說過,這里不再進行贅述。
考慮到瀏覽器的負載,這里,用戶輸入的奇數(shù),我只允許去到189,你調大一點也可以,189由于在我的電腦里面感覺還可以,所以才定這個數(shù)的,沒有什么特別的意義,亂輸入的,不是故意測試的。
輸入一個189行,IE已經(jīng)彈出“中止腳本”的提示了,但不中止也完全沒有問題!
運行結果如下:
如果是在寫C語言程序或者其他程序,這個值絕對可以定大一點!
二、基本思想
這個弄懂就非常好寫了。
首先,我們僅僅是要在*的左邊輸出空格,右邊就沒有必要輸出空格了,輸完*就直接換行
分兩部分,一部分是上半部分i<=n/2的時候,另一部分是下半部分i>n/2的時候,
之所以要這樣分是因為這兩部分輸出的*號與輸出的空格數(shù)是不同的。
之后就是初中都會的找規(guī)律問題了,反正我就找到了如上的規(guī)律,編程運行時沒有問題,其它數(shù)學帝找到更牛B的表達式,小弟甘拜下風。
三、制作過程
代碼非常簡單,就是條件結構與循環(huán)結構的表達,上面的思想弄懂了,不用說了。
這里可能會有人覺得奇怪,為何我要先n++然后n%2!=0再來判斷,也就是判斷n+1是偶數(shù)來判斷n是否奇數(shù),
這里主要是為了迎合下面的for循環(huán)結構……
<html> <head> <meta http-equiv="content-type" content="text/html;charset=gb2312"/> </head> <body> </body> </html> <script> var i,j,k,n; n=window.prompt("請輸入要輸出的行數(shù)n,為了形成軸對稱,所以你輸出的必須是奇數(shù)!"); if(isNaN(n)||!n) alert("你輸入的不是數(shù)!"); else{ n++; if(n%2!=0) alert("你輸入的不是奇數(shù)!"); else if(n>190){ alert("不要這么大嘛!臣妾做不到??!"); } else{ for(i=1;i<n;i++){ if(i<=n/2){ for(k=n/2-i;k>0;k--) document.write("&nbsp;"); for(j=0;j<2*i-1;j++) document.write("*"); } else{ for(k=i-n/2;k>0;k--) document.write("&nbsp;"); for(j=0;j<2*(n-i)-1;j++) document.write("*"); } document.write("<br>"); } } } </script>
說多了也是淚,自己體會……
更多關于JavaScript相關內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)學運算用法總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》、《JavaScript數(shù)組操作技巧總結》、《JavaScript排序算法總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript查找算法技巧總結》及《JavaScript錯誤與調試技巧總結》
希望本文所述對大家JavaScript程序設計有所幫助。
相關文章
純javascript代碼實現(xiàn)計算器功能(三種方法)
純javascript代碼實現(xiàn)計算器功能,接下來,由小編給大家分享一下用純javascript代碼編寫的計算器程序,需要的朋友可以參考下2015-09-09最好用的二級聯(lián)動 原生js實現(xiàn)你值得擁有
二級聯(lián)動效果,實現(xiàn)方法有很多,不過其他文章中介紹的都比較籠統(tǒng),在本文有一個詳細的實現(xiàn)過程,使用原生js很容易理解,希望大家可以參考下2013-09-09微信小程序實現(xiàn)限制用戶轉發(fā)功能的實例代碼
這篇文章主要介紹了微信小程序實現(xiàn)限制用戶轉發(fā)的實例代碼,通過截圖加實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02