1、大數求餘原因:大數越界
大數越界:隨着n
增大,f(n)
會超過Int32
甚至Int64
的取值範圍,導致最終的返回值錯誤。
當一個問題只對答案的正確性有要求,而不在乎答案的數值,可能會需要將取值很大的數通過求餘變小。
2、求餘運算規則:
設正整數x,y,p,求餘符號爲⊙。
對於加法運算:(x+y)⊙p = (x⊙p+y⊙p)⊙p
對於乘法運算:(x*y)⊙p = [(x⊙p)*(y⊙p)]⊙p
以防x,y本身就超出int32範圍,可以創建一個long
型變量tmp
保存臨時結果。