當年我師父(教 C 語言和編譯原理以及演算法競賽的)在訓練時提了一個「大整數對 3 取模的餘數是多少」的問題。很多人的直接反應都是直接看各位相加對 3 的餘數。實際上,這個做法不具有可延展性。
我師父帶我們看了一個不一樣的解題視角:既然是模 3,那就只有 3 種狀態,即餘 0 的、餘 1 的和餘 2 的。然後輸入也只有 10 種可能,所以只要看在當前的狀態下,輸入下一個字元,會跳轉到什麼狀態就行了。
當年我就是我們學校 OJ 開發和管理組的成員。所以後來我就把原來的問題稍作擴充在 OJ 上出了一道新題,問 16 進位的大數取模的。你這題雖然數字不同,但本質都一樣。所以看到這題,2333。我甚至有點懷疑你是我母校的學弟。當然是不是我目前還不知道。不過至少從你的上一個被關閉的提問可以看到,這題肯定也是一個 ACMer 出的。