快手工程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)
另外就是,这种是只需要写函数,还是输入也要写?

#快手##笔试题目##Python#
全部评论
这种不用写输入 输出return就好啦 去leetcode刷两道就懂啦
点赞
送花
回复
分享
发布于 2020-04-12 19:21

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务