Python 中透過串聯 n 次來計算數字模數的程式
假設我們有一個數字 A。我們必須透過連續 n 次串聯 A 生成一個大數字 X,並找到 X 模 m 的值。
因此,如果輸入類似於 A = 15 n = 3 m = 8,那麼輸出將為 3,因為數字 x 將為 151515,且 151515 mod 8 = 3。
要解決這個問題,我們將遵循以下步驟 −
- 如果 A 與 0 相同,則
- 返回 0
- an:= A
- c:= A 中的數字位數
- c:= 10^c
- d:= c-1
- newmod := d*m
- val := (c ^ n mod newmod) -1
- val :=(val + newmod) mod newmod
- an :=(an * val) mod newmod
- 返回 (an / d) 的向下取整
示例
讓我們看看以下實現以獲得更好的理解 −
def solve(A, n, m):
if A == 0:
return 0
an=A
c=len(str(A))
c=10**c
d=c-1
newmod = d*m
val = pow(c,n,newmod)-1
val = (val+newmod) % newmod
an = (an*val) % newmod
return an // d
A = 15
n = 3
m = 8
print(solve(A, n, m))輸入
15, 3, 8
輸出
3
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP