快手工程B类的笔试第二题就通过了33%,求大佬帮助
我才用的方法就是讲R转化为对应的N进制数,先算出logn=log(R, N),让R从N的最高次方开始减,并且logn-=1,列表对应位置变为1
.如果到最后,logn都为0了,R都没剪完则返回空;
import math class Solution: def GetPowerFactor(self , R , N ): # write code here if R<N: print([0]) else: logn=math.ceil(math.log(R,N)) num=logn a=[0 for i in range(logn)] list1=[] while(logn!=0 and R!=0): if R>=pow(N,logn-1): R-=pow(N,logn-1) a[logn-1]=1 logn-=1 else: logn-=1 if R!=0 : print([]) else: for i in range(num): if a[i]==1: list1.append(i) print(list1) s1=Solution() R,N=map(int,input().split(',')) s1.GetPowerFactor(R,N)另外就是,这种是只需要写函数,还是输入也要写?