演算法藝術 一 Hello world

2022-03-16 06:38:55 字數 1080 閱讀 6808

想了許久,演算法藝術的開篇應該寫個什麼演算法,拿個複雜的演算法出來感覺讓人望而卻步,那個簡單的演算法讓人倍感無聊。突然想起了乙個笑話:

某程式設計師對書法十分感興趣,退休後決定在這方面有所建樹。於是花重金購買了上等的文房四寶。一日,飯後突生雅興,一番磨墨擬紙,並點上了上好的檀香,頗有 王羲之風範,又具顏真卿氣勢,定神片刻,潑墨揮毫,鄭重地寫下一行字:hello world. 

於是就拿hello world 來作為開篇的第一章。 既然是程式設計師,估計沒有誰沒有寫過這段經典的hello world。

第一堂程式課的時候老師異常興奮的教寫了一段hello world 的程式,老師的興奮大可理解,大抵都會有所感慨的。可是作為學生的我們卻不大感冒,這樣就是學程式設計啊?太簡單,太沒意思了吧!學習的人難免 心浮氣躁,想一下子就能做乙個複雜的程式。那時候也是好高騖遠的,而且這種好高騖遠很多人都保持了很久。

好吧,既然是演算法,也要讓我們的hello world 「算」出來吧。

c# hello world 寫法也可以有幾種。

最經典的方式:

s​y​s​t​e​m​.​c​o​n​s​o​l​e​.​w​r​i​t​e​l​i​n​e​(

"​h​e​l​l​o​ ​w​o​r​l​d​

")​;​ ​ ​ 

這個略有變化:

**c​h​a​r[​]​ ​c​h​r​h​e​l​l​o​w​o​r​l​d​ ​=​ n​e​w c​h​a​r[​]​ ​​;​ ​ ​ 

f​i​x​e​d(c​h​a​r ​*​p​ ​=​ ​c​h​r​h​e​l​l​o​w​o​r​l​d​)​ ​ ​ 

​ ​ ​ 

也可以定義每個字元的 ascii 然後輸出。要做出乙個有意思的輸出,我們不妨逆向思維,比如各個字母的雜湊碼;比如我們看想辦法讓hello world 變成我們自己的名字,然後反過來輸出hello world。沒錯,這裡要強調的是一種逆向思維。凡在編寫**的時候多逆向思考一下,寫出的東西目的是什麼。

hello world 的很多有趣的演算法很有很多,列出了197中helloworld 寫法,有興趣的也不妨看看。

最後還是強調那一點,多點逆向你的思維,就算是hello world!

附送一些有趣的幽默笑話:

演算法 演算法的藝術

小續 最近很多人都在問我資料結構和演算法的相關問題,對於初學者,貌似聽到演算法,資料結構什麼的,都覺得是比較高深的東西,其實它們並沒有想象中的難,只是你還沒有乙個整體上的把握,還沒有習慣站在整體上去思考問題。演算法是靈魂,資料結構是包裝,語言只是工具,學什麼語言並不重要,重要的是思想。這也是如鵬的理...

演算法 演算法的藝術(三)

列印魔方陣 乙個奇數階 設為n階 的方陣,將1 2 3 n2填入方陣中,使每行 每列資料之和都相等,這樣的方陣便是魔方陣。例項解析 填寫魔方陣有乙個固定的方法 1 1總是位於第一行的中間。3 若右上方超出 的右邊界,則數字填入到第一列,行數不變。圖16 1中的3和8都是這種情況。若右上方超出上邊界,...

演算法 演算法的藝術(五)

利用位運算求整數的原碼或補碼 利用位運算求任意整數的原碼或補碼。例項解析 整數在記憶體中本來就是用補碼存放的,若要求出補碼,只需求出記憶體中的每一位二進位制數即可。而原碼,若是負數,則需要將補碼減1然後取反 最高位不取反 程式 include stdio.h int main while k 1 k...