【问题标题】:The function doesn't give the output as expected该函数未按预期提供输出
【发布时间】:2021-04-07 11:16:53
【问题描述】:

我定义了一个函数:
输入:两个数字 l,k
输出:基数 l 中的数字 k

代码:-

def base(k,l):
    result=''
    while k!=0:
        remainder = k%l
        k=k//l
        result= result + str(remainder)
    return result 

当数字可以被底的任何幂整除时,就会出现问题。
例如:- 如果 base = 2 且 k = 2,则输出为 01 而不是 10。在其他一些数字中也会发生同样的情况

【问题讨论】:

    标签: python function binary hex


    【解决方案1】:

    你需要在前面加上余数:

    result = str(remainder) + result
    

    【讨论】:

      【解决方案2】:

      你问的不是效率,而是如何让它发挥作用。

      使用快速测试

      def base(k,l):
          result=''
          while k!=0:
              remainder = k%l
              k=k//l
              result= str(remainder) +  result
          return result 
      

      有效。

      【讨论】:

        猜你喜欢
        • 2014-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-07
        • 2014-04-08
        • 1970-01-01
        相关资源
        最近更新 更多