閱讀材料一:靜態(tài)檢查>2.冰雹序列

Reading 1: Static Checking > Hailstone Sequence

原文地址: https://courses.edx.org/courses/course-v1:MITx+6.005.1x+3T2016/courseware/Readings_Videos/01-Static-Checking/

冰雹序列

作為一個(gè)運(yùn)行的例子,我們將探討冰雹序列,其定義如下。從數(shù)字n開始,如果n是偶數(shù)那么序列的下一個(gè)數(shù)為n的一半,如果n是奇數(shù)那么序列的下一個(gè)數(shù)為3n+1。當(dāng)n為1時(shí)序列結(jié)束。這有些例子:


冰雹序列例子

由于奇數(shù)規(guī)則,序列在到達(dá)1前可能會(huì)一會(huì)兒上升一會(huì)兒下降。人民推測(cè)就像冰雹最終都會(huì)落地樣,從任何n開始的冰雹序列最終都會(huì)到達(dá)1,但這依然是個(gè)開放的問題。為什么這稱為冰雹序列?因?yàn)楸⒃谠浦猩仙舷孪拢钡椒e累到足夠的重量使得它能落地。

計(jì)算冰雹序列

這有一些計(jì)算并打印出冰雹序列的代碼。我們將貼出Java和Python的代碼在一起比較。


代碼1

一些地方值得我們注意:

-一些基本的人造表達(dá)式無論在Java中還是Python中都非常相似, 例如while和if表現(xiàn)地幾乎一樣。

-Java要求在每行后有分號(hào)。這個(gè)多余的標(biāo)點(diǎn)符號(hào)看似很平淡,但是它也給了你更多的自由去組織你的代碼--你可以為了可讀性將一句代碼分成很多行。

-Java要求每個(gè)if和while的情況判定式需要用圓括號(hào)包圍。這么做并沒有什么好的理由,而且我個(gè)人很煩這點(diǎn)。

-Java要求中括號(hào)包裹代碼塊,而不是用縮進(jìn)。你需要縮進(jìn)代碼,即使Java不強(qiáng)制要求這一點(diǎn)。代碼是一種交流形式,而且你不只是在和編譯器交流,還在和人類交流。人類需要縮進(jìn)。我們還是回來談這一點(diǎn)的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容