JavaScript實(shí)現(xiàn)打印星型金字塔功能實(shí)例分析
本文實(shí)例講述了JavaScript實(shí)現(xiàn)打印星型金字塔功能。分享給大家供大家參考,具體如下:
讓你用其它語(yǔ)言寫也是完全一樣的道理,
這道題估計(jì)大家在學(xué)習(xí)C語(yǔ)言的時(shí)候就見(jiàn)過(guò)……
也就是打印以下的鬼東西:
當(dāng)時(shí)候看到循環(huán)結(jié)構(gòu)的時(shí)候覺(jué)得很無(wú)聊,就相當(dāng)不屑這題,沒(méi)有好好仔細(xì)想想,
因?yàn)橐欠旁贘avaScript完全可以這樣寫,甚至還不算是JavaScript,僅僅就是一個(gè)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編碼是因?yàn)閡tf-8對(duì)于nbsp的處理與*的字體會(huì)導(dǎo)致排版錯(cuò)亂,就是不是用標(biāo)準(zhǔn)的宋體字,從而導(dǎo)致最終的結(jié)果無(wú)法查看。
反正你出題人出多少行,我都可以復(fù)制粘貼上面的內(nèi)容完全可以實(shí)現(xiàn),但是,今天編程編到一定量,有點(diǎn)大數(shù)據(jù)概念的時(shí)候,又見(jiàn)到這題,仔細(xì)思考了一下,要是出題人要求輸出二十萬(wàn)行這樣中間軸對(duì)稱的星型金字塔,我TMD就呵呵了。
所以還是要徹底搞明白這個(gè)怎么實(shí)現(xiàn),雖然在實(shí)際的編程中不會(huì)出現(xiàn)這樣的編程,但是,據(jù)說(shuō)一些無(wú)聊的面試還是會(huì)出這題,至少,后來(lái)者問(wèn)你C語(yǔ)言的時(shí)候,問(wèn)你如果輸出二十萬(wàn)行這樣的中間軸對(duì)稱的星型金字塔,你還是要會(huì),這題如果第一次做不好做的。
一、基本目標(biāo)
首先彈出一個(gè)輸入框,讓用戶輸入一個(gè)奇數(shù),畢竟軸對(duì)稱需要一個(gè)奇數(shù),
然后為了程序的健壯性,必須對(duì)用戶輸入的東西進(jìn)行判斷,如果輸入的不是奇數(shù),就彈出提示,不再執(zhí)行后面的程序,怎么JavaScript判斷一個(gè)奇數(shù),我已經(jīng)在《JavaScript對(duì)數(shù)字的判斷與處理》說(shuō)過(guò),這里不再進(jìn)行贅述。
考慮到瀏覽器的負(fù)載,這里,用戶輸入的奇數(shù),我只允許去到189,你調(diào)大一點(diǎn)也可以,189由于在我的電腦里面感覺(jué)還可以,所以才定這個(gè)數(shù)的,沒(méi)有什么特別的意義,亂輸入的,不是故意測(cè)試的。
輸入一個(gè)189行,IE已經(jīng)彈出“中止腳本”的提示了,但不中止也完全沒(méi)有問(wèn)題!
運(yùn)行結(jié)果如下:
如果是在寫C語(yǔ)言程序或者其他程序,這個(gè)值絕對(duì)可以定大一點(diǎn)!
二、基本思想
這個(gè)弄懂就非常好寫了。
首先,我們僅僅是要在*的左邊輸出空格,右邊就沒(méi)有必要輸出空格了,輸完*就直接換行
分兩部分,一部分是上半部分i<=n/2的時(shí)候,另一部分是下半部分i>n/2的時(shí)候,
之所以要這樣分是因?yàn)檫@兩部分輸出的*號(hào)與輸出的空格數(shù)是不同的。
之后就是初中都會(huì)的找規(guī)律問(wèn)題了,反正我就找到了如上的規(guī)律,編程運(yùn)行時(shí)沒(méi)有問(wèn)題,其它數(shù)學(xué)帝找到更牛B的表達(dá)式,小弟甘拜下風(fēng)。
三、制作過(guò)程
代碼非常簡(jiǎn)單,就是條件結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的表達(dá),上面的思想弄懂了,不用說(shuō)了。
這里可能會(huì)有人覺(jué)得奇怪,為何我要先n++然后n%2!=0再來(lái)判斷,也就是判斷n+1是偶數(shù)來(lái)判斷n是否奇數(shù),
這里主要是為了迎合下面的for循環(huán)結(jié)構(gòu)……
<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("請(qǐng)輸入要輸出的行數(shù)n,為了形成軸對(duì)稱,所以你輸出的必須是奇數(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>
說(shuō)多了也是淚,自己體會(huì)……
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- jsvascript圖像處理—(計(jì)算機(jī)視覺(jué)應(yīng)用)圖像金字塔
- javascript 打印內(nèi)容方法小結(jié)
- js 實(shí)現(xiàn)打印網(wǎng)頁(yè)中定義的部分內(nèi)容的代碼
- javascript打印輸出json實(shí)例
- jsp/javascript打印九九乘法表代碼
- javascript 局部頁(yè)面打印實(shí)現(xiàn)代碼
- js fromCharCode輸出26個(gè)字母的代碼
- js循環(huán)輸出圖片,不足的要補(bǔ)0
- javascript實(shí)現(xiàn)輸出指定行數(shù)正方形圖案的方法
相關(guān)文章
純javascript代碼實(shí)現(xiàn)計(jì)算器功能(三種方法)
純javascript代碼實(shí)現(xiàn)計(jì)算器功能,接下來(lái),由小編給大家分享一下用純javascript代碼編寫的計(jì)算器程序,需要的朋友可以參考下2015-09-09JavaScript錯(cuò)誤處理和調(diào)試方法詳解
代碼審查是調(diào)試JavaScript的重要方法,因?yàn)樗试S多個(gè)開(kāi)發(fā)人員一起處理代碼庫(kù)并在開(kāi)發(fā)過(guò)程的早期發(fā)現(xiàn)錯(cuò)誤,這篇文章主要給大家介紹了關(guān)于JavaScript錯(cuò)誤處理和調(diào)試方法的相關(guān)資料,需要的朋友可以參考下2023-11-11JS實(shí)現(xiàn)簡(jiǎn)易留言板(節(jié)點(diǎn)操作)
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)簡(jiǎn)易留言板,節(jié)點(diǎn)進(jìn)行操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03最好用的二級(jí)聯(lián)動(dòng) 原生js實(shí)現(xiàn)你值得擁有
二級(jí)聯(lián)動(dòng)效果,實(shí)現(xiàn)方法有很多,不過(guò)其他文章中介紹的都比較籠統(tǒng),在本文有一個(gè)詳細(xì)的實(shí)現(xiàn)過(guò)程,使用原生js很容易理解,希望大家可以參考下2013-09-09微信小程序?qū)崿F(xiàn)限制用戶轉(zhuǎn)發(fā)功能的實(shí)例代碼
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)限制用戶轉(zhuǎn)發(fā)的實(shí)例代碼,通過(guò)截圖加實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02JavaScript實(shí)現(xiàn)PC端橫向輪播圖
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)PC端橫向輪播圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02使用原生的javascript來(lái)實(shí)現(xiàn)輪播圖
這篇文章主要介紹了使用原生的javascript來(lái)實(shí)現(xiàn)輪播圖,在代碼底部給大家補(bǔ)充了原生javascript實(shí)現(xiàn)banner圖自動(dòng)輪播切換 ,需要的朋友可以參考下2017-02-02