每组测试数据包括一行,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