刷题点4二分查找算法的应用典题密训①将十进制数n(2“≥n≥3)转换为k(k≥2)进制数,若所有数位全为1,则称k是n的一个好进制数。例如,十进制数31可以转换为(11)和(11111):,因此30和2均是31的好进制数,其中2为31的最小好进制数。请回答下列问题:(1)十进制数21的最小好进制数k是4(2)小明编写如下Python程序,找出n的最小好进制数k,请在划线处补充代码。n~int(input('输人一个十进制数:')def check (k,m):checki函数计算(m个1)k=()10·#计算m位全为1的进制的十进制值,如二进制数111的十进制值为7ans =0·for i in range(m)··ans十=k*刻或ans十=ans十1·return ansans nfor length in range(2,65):=2(至少2进制1·j=n-1·while i<=:··mid▣(i+j)//2tmp check(mid,length)说明i,j是进制的范围·if tmp==n:if ans>mid:ans =midbreak算出来十进制的偏小elif tmp
暂无评论内容