C語言經典演算法(二)

1.判斷某年是否為閏年

說明:了解閏年的算法即可輕鬆解決,怎麼算的很多地方都找的到

2.獲得某年某月的最大天數

說明:使用Swith..case的方式可以輕鬆解題,注意判斷2月是否為閏年即可

3.輸入某年某月某日判斷這天是這一年的第幾天

說明:要知道是第幾天,將該月之前的每月總天數加起來,再加上到今天是幾號,接著判斷是否為閏年即可

4.求一個數的N階層(EX: 5! = 5x4x3x2x1)

說明:這寫法有很多種,差別只在於時間複雜度

5.求兩數的最大公因數(GCD)以及最小公因數(LCM)

說明:這題的重點在求出最大公因數,之後的最小公倍數就可以輕鬆解決,這裡推薦使用輾轉相除法求出最大公因數,接著再用最小公倍數的算法(axb)/GCD(a, b)即可

6.打印出三位數的水仙花 (水仙花是指一個N位數其各數字的立方和)

說明:我在計算的時候好像弄錯題目了XD,原本題意是要求出1~1000的水仙花,我只有弄出判斷是否為水仙花,雖然沒差就是了,這題多注意個十百千萬的運算即可

7.不依賴第三個變量實現兩數交換

說明:這種做法稍微有印象就好,因為這種做法的應用空間有限,會被自身的算法限制

8.將十進制換算成2-16進制

持續解答中...

9.將一個數分解成質因數 EX:90 = 2X3X3X5

說明:有時候正向思考解題是種障礙,這時候不如逆轉思考一下,我們已知一數可以被分解為質因數相乘,想當然,一個數可以被自己的質因數除到沒有,例如:90/2 = 45, 45/3=15, 15/3= 5
這樣想的時候,題目會變得異常簡單

10.猴子吃桃

猴子第一天摘下若干桃子,當即吃了一半,還不過癮又多吃了一個。第二天又將剩下的桃子吃掉一半,又多吃了一個。以後每天都吃了前一天剩下的一半零一個。到第10天再想吃時就只剩下1個,求第一天共摘多少個桃子。


說明:這題也是依樣逆轉思考會比較好解題,我們要求出總桃數,又已知每天吃的數量以及剩餘個數,從最後一天將桃子數量慢慢加回去,即可求得答案

留言

這個網誌中的熱門文章

Raspberry pi 樹莓派系列 :安裝瀏覽器

『如何說出好故事|故事架構介紹|輕鬆做出大師級故事架構』

『目標管理|SMART原則|最有效的目標管理原則』