如何寫程式判斷閏年並計算一個月有幾天? 2023 年 1 月 3 日 Magic Len Go、 Java、 Rust、 JavaScript 我們在小學階段都會學到平年(common year)和閏年(leap year)的判斷方式,以及這兩種年份是差在前者的二月有28天,後者則是有29天。所以平年整年一共有365天;閏年整年一共有366年。這是身為一個地球人的基本常識,但在小學的時候,老師可能只會告訴我們把西元年份的數字除以4,如果可以整除,那麼這年就是閏年,否則是平年。老師說的也不能說是錯的,只是不太完整,實際上,閏年的正確判斷方式... 繼續閱讀
在Java和JavaScript中,字串的字數就等於字元數量嗎?錯! 2022 年 12 月 13 日 Magic Len 研究分享、 Java、 JavaScript 在Java和JavaScript中,我們經常會使用字串(String)提供的「length」成員(member)來抓取這個字串的字數。由於Java和JavaScript並不像Rust或是Golang程式語言這樣會直接抓到字串在經過編碼之後的位元組數量,而是會得到字元的數量,所以我們很直覺地就會在Java或JavaScript用這樣的方式來計算字串的字數。 繼續閱讀
寫程式算階乘,關於階乘的三兩事 2022 年 10 月 27 日 Magic Len 研究分享、 Go、 Java、 數學邏輯、 Rust、 JavaScript 正整數的階乘(Factorial)是小於或等於該數的所有正整數的乘積,若正整數為N,用N!來表示N的階乘。至於0!是階乘的特例,它被定義為1。階乘的運算具有遞迴(recursion)概念,常作為學習程式邏輯的材料,而這篇文章將會說明階乘相關的程式計算。 繼續閱讀
如何寫程式來做等值的貨幣或是物品的數量換算? 2022 年 7 月 28 日 Magic Len 研究分享、 Java、 數學邏輯、 Rust、 JavaScript 不同國家有不同的貨幣流通,不同的貨幣也會有不同的價值。其實也不只貨幣,任何物品,無論實體的或是虛擬的都一樣,只要價值可以被衡量,就可以被等值換算。講到錢就傷感情,以蘋果和橘子來舉例好了,假設2顆蘋果等值於3粒橘子,那麼8顆蘋果就會等值於12粒橘子。 繼續閱讀
如何判斷兩個浮點數是否相等?是否能整除?相除後餘數是多少? 2022 年 7 月 21 日 Magic Len 研究分享、 Java、 Rust、 演算法、 JavaScript 使用電腦去進行浮點數運算的時候,在某些條件下會出現顯而易見的誤差,而這樣的誤差,就會導致與浮點數有關的計算或是邏輯判斷出現問題。 繼續閱讀
用動態規劃解決問題:零壹背包問題(0/1 Knapsack Problem) 2020 年 8 月 4 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 一個背著背包的小偷闖空門偷東西,他必須趁屋主回來之前把有價值的物品塞進包包內帶走。考慮到小偷自身的行動力,背包能裝的物品總重量有限,小偷要如何選擇物品才能獲得最高的總價值? 繼續閱讀
用動態規劃解決問題:找零錢問題(Coin Change Problem) 2020 年 7 月 28 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 許多人認為身上如果帶太多的零錢會讓行動變得不方便,因此會希望商店店員在找零錢的時候能夠以最少的硬幣數來找,而不是全部都用1元塞給我們。 繼續閱讀
用動態規劃解決問題:基本觀念(有重疊子問題的問題) 2020 年 7 月 21 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 動態規劃(Dynamic Programming,簡稱DP)是一種解決問題的技巧,主要被用來優化那些「記不住自己過去曾解出來的答案所以只好重複再解」的演算法,讓它們可以「記憶」已經找出來的答案,從而不斷利用,以大大降低時間複雜度(從指數級降到線性)。 繼續閱讀
認識數字系統,進行任意進制的超長整數運算(加、減、乘、除) 2020 年 7 月 14 日 Magic Len 研究分享、 Go、 Java、 數學邏輯、 Rust、 JavaScript 電腦程式在進行整數數值計算的時候,會受到變數型別的記憶體空間使用大小而有數值表示範圍的限制,所以當遇到過長的數值時,就無法正常地運算出結果。 繼續閱讀
如何用程式進行質因數分解和尋找最大公因數與最小公倍數? 2020 年 7 月 9 日 Magic Len 研究分享、 Go、 Java、 數學邏輯、 Rust、 演算法、 JavaScript 若正整數a除以正整數b可以整除,則稱b為a的因數(Factor),a為b的倍數(Multiple),1是所有正整數最小的因數,任意正整數最大的因數就是該正整數本身。若a同時是x和y的因數,則稱a是x和y的公因數(Common Divisor),如果a是x和y的公因數中最大的一個,則稱a是x和y的最大公因數(Greatest Common Divisor,簡稱GCD)。若a同時是x和y的倍數,則稱a... 繼續閱讀