程式設計 微知識 (七) i++與++i

i++與++i是不一樣的兩個東西:

i++:先使用i的值,再將i的值+1

++i:先將i+1,再使用i的值。

++i會比i++有效率,因為執行i++時,編譯器會需要產生出一個temp用來暫存i的植,指令也因此增加,也因此當反覆執行很多次的時候,++i的效率會比i++來的快。

本文以C++實作介紹。

 

...繼續閱讀 »

練習題(三)

給定兩個長度相同的字串,判斷是否能把其中一個字串的各個字母重組,使兩字串相同。

EX: 字串一為JWPZDJSTAC,字串二為WJDZASJPCT,此二字串相同;字串一為CADA,字串二為CCAD,此二字串不同。

本文以C++實作執行。

...繼續閱讀 »

程式設計 微知識 (六) 行內函式(inline function)

內嵌函數其實就是將一個function直接展開至程式碼當中。

內嵌函數,也就是在 function前加入inline這個關鍵字,其用意是加速程式的執行速度。經過inline所宣告的function會直接展開在程式碼裡面,展開後的程式碼就會直接存取該參數,省略了呼叫function的資源浪費。也就是好處是不用呼叫函式執行速度較快,缺點是程式會因此變大,通常會用在程式碼不多但是卻常被呼叫的函式,然後只有當編譯器的效益分析為有利的時候,inline的動作才會發生。

本文以C++實作介紹。

...繼續閱讀 »

練習題(二)

輸入一個自然數,當是三的倍數的時候印出Apple,當是五的倍數的時候印出Banana,當是七的倍數的時候印出Candy,不是三或五或七的倍數時請印出數字。

本文以C#實作執行。

...繼續閱讀 »

練習題(一)

假設P是某個整數Q的完全平方數( P=Q^2)。
寫一個函式:

       int solution(int A, int B)

給定兩個整數A和B,然後B>=A,然後回傳在A和B區間內所有的完全平方數個數(包含A和B)。

例如: A=3 B=26,然後我們應該要回傳4,因為在3到26中間有4個完全平方數。
4=2^2, 9=3^2, 16=4^2, 25=5^2.

本文以C#實作執行。


 

...繼續閱讀 »

有趣的範例(一)-洗撲克牌

基本的撲克牌分成四個花色,梅花(Clubs)、磚塊(Diamonds)、愛心(Hearts)、黑桃(Spades),以及一到十三共五十二張牌。如果加上鬼牌的話一副撲克牌有54張。這個範例是扣除鬼牌之後每次執行程式都會隨機產生五十二張牌。

本文以C++實作執行。

...繼續閱讀 »

C#程式設計教學入門分享

去年一整年服役期間,斷斷續續複習以及學習C#程式設計,同時做了一系列的PPT跟程式設計範例,希望能夠幫助到需要入門C#程式設計的朋友們,畢竟一直以來有一個願景就是希望能夠將程式設計的學習普及到全臺灣。

 

...繼續閱讀 »

程式設計 微知識 (五) 遞迴(Recursion)和迭代(Iteration)

遞迴(Recursion):一種透過重複將問題分解為同類的子問題而解決問題的方法。在大部分的程式語言中都支援函數的自我呼叫,也就是說在程式語言中可以通過呼叫函數本身來進行遞迴。

迭代(Iteration):其目的通常是為了接近所需求的目標或結果。每一次對過程的重複被稱為一次"迭代",每一次迭代得到的結果通常會被用來作為下一次迭代的初始值。

本文以C++實作執行。

...繼續閱讀 »