Python編程算法【二十七】高次方數(shù)的尾數(shù)
【案例內(nèi)容】
求13的13次方(即13 x 13 x 13 x ... x 13,連乘13次)的最后三位數(shù)。
【解題思路】
通過手動計算可知,乘積的最后三位的數(shù)值,只與乘數(shù)的后三位有關(guān),與乘數(shù)的其他位數(shù)無關(guān)。根據(jù)這一規(guī)律,我們只需用之前一次的乘積的后三位與13相乘即可,比如2197 x 13,只需要求197 x 13即可,再把求出來的數(shù)的最后三位數(shù),繼續(xù)與13相乘,直到乘滿13次為止。要拿到最后三位,只要用該數(shù)對1000取模就可以了。
【Python代碼】

一般初學(xué)者會按照題意,連續(xù)乘13次的13,然后再找出最后三位數(shù)。但是計算機存儲的整數(shù)是有一定范圍的,超出范圍將不能正確的表示,所以用這種方法不可能得不到正確的結(jié)果。因此我們一開始連乘幾次13后,要找出其中的規(guī)律,再根據(jù)規(guī)律編程求解,問題便迎刃而解。
標簽: