代码之家  ›  专栏  ›  技术社区  ›  AHF

把木棍分成相等的长度

  •  1
  • AHF  · 技术社区  · 5 年前

    输入:stick=[5,9,7],K=4

    这意味着我们有三根棍子,长度分别为5,9和7。我们想通过切割这三根棍子得到K=4等长的棍子。我们希望最终得到K=4等长棒。

    最新解释:

    从长度为9的第二根棍子开始,我们可以得到长度为4的两根棍子。

    从第三根长7的木棍开始,我们可以得到一根长4的木棍。

    我的代码如下:

    stick = [5,7,9]
    K=4
    for i in range(len(stick)):
        T = stick[i]%K
        if T !=0:
            print (stick[i],T)
        else:
            print (stick[i])
    

    我的代码给了我下面的输出

    5 1
    7 3
    9 1
     
    

    但是我怎么能打印出数字+它的加法呢

    5 = 4 + 1
    7 = 4 + 3
    9 = 4*2 + 1
    

    我的代码只给我输出 1,3,1

    预期产量:

    Input: stick = [5, 9, 7], K = 4
    Output: 4
    
    Explanation:
    Cut arr[0] = 5 = 4 + 1
    Cut arr[1] = 9 = 2 * 4 + 1
    Cut arr[2] = 7 = 4 + 3
    

    Input: stick[] = {5, 9, 7}, K = 3
    Output: 5 \
    
    Explanation:
    Cut arr[0] = 5 = 5
    Cut arr[1] = 9 = 5 + 4
    Cut arr[2] = 5 = 5 + 2
    
    0 回复  |  直到 5 年前
        1
  •  -1
  •   Selcuk    5 年前

    最好根据不同的条件构造一个字符串,然后打印:

    stick = [5, 7, 8, 9]
    K = 4
    for i in range(len(stick)):
        T = stick[i] % K
        D = stick[i] // K
    
        # Construct the multiplier text (* ...) if necessary
        if D > 1:
            multiplier = f" * {D}"
        else:
            multiplier = ""
    
        # Construct the remainder (+ ...) text if necessary
        if T:
            remainder = f" + {T}"
        else:
            remainder = ""
    
        # Print the final result
        print(f"{stick[i]} = {K}{multiplier}{remainder}")
    

    应打印:

    5 = 4 + 1
    7 = 4 + 3
    8 = 4 * 2
    9 = 4 * 2 + 1
    

    更新:这个答案假设 K 是问题中发布的原始代码中暗示的所需长度。如果是分裂的数目,逻辑必须相应地更新,但实际问题的答案(即。 “如何以特定方式打印”