360笔试:病毒写入位数检查

来源:互联网 发布:校园网站源码 编辑:程序博客网 时间:2024/06/10 04:00
#ecoding=utf-8import stringdef getNumLen(inNum):    """    获得输入数字的位数    :param inNum: 输入数字    :return: 数字位数    """    lenNum = 0;    while(inNum>0):        inNum /= 10        lenNum = lenNum+1    return lenNumdef getRe(testNum):    """    获得结果    :param testNum:最终结果    :return: 输入数字    """    testNumLen = getNumLen(testNum)    reNum = pow(2,testNumLen-1)-1    basicNum0 = pow(10,testNumLen-1)    for i in range(0,pow(2,testNumLen-1)):        binI = bin(i)        tenI = basicNum0 + string.atoi(binI[2:])        if(tenI > testNum):            break        else:            reNum = reNum+1    return reNumif __name__ == "__main__":    str = raw_input("请输入数字: ");    print "输入的数字是 : ", str    inNum = 12    print getRe(int(str))

0 0