每组测试数据包括一行,x(0<x<2000000000), y(0<y<2000000000), k(2<=k<=16)
输入可能有多组数据,对于每一组数据,root(x^y, k)的值
4 4 10
4
这个代码出现错误 RecursionError: maximum recursion depth exceeded in comparison 请问一下大神们,我编写的程序在算力允许的条件下是不是没有错?这个代码在数据不大 的时候能执行,太大了就出现以上错误了 def toStr(n, k): '''把n转换为k进制''' numbers = '0123456789ABCDEF' if n < k: return numbers[n] else: return toStr(n//k, k) + numbers[n % k] def root(N, k): if N < k: return N else: str_N = str(toStr(N, k)) return root(sum(int(i) for i in str_N), k) x,y,z = map(int, input().split()) print(root(x**y, z))
N'=a0+a1+a2+……+an;
N-N'=a1*(k-1)+a2*(k^2-1)+……+an*(k^n-1);
提取(k-1)有: (N-N')%(K-1)=0;
继续递推下去有: (N-N')%(k-1) =0;
try:
while True:
x,y,k = list(map(int,input().split()))
result = 1
while y:
if y&1:
result = (result*x)%(k-1)
x = (x*x)%(k-1)
y>>=1
result = result if result else k-1
print(result)
except Exception:
pass