查找杯子和架子的整齐排列是否可以用Python进行

假设我们在数组p的阵列中有三种不同类型的杯子,在数量为q和m的阵列中有碟,我们必须检查是否可以将杯子和架子整齐地排列。

可以说,如果满足以下条件,则杯子和碟子的布置会整齐:1.没有架子可以容纳杯子和碟子。2.一个自我最多可以容纳5个杯子。3.一个自我最多可容纳10个碟。

因此,如果输入像p = [4,3,7] q = [5,9,10] m = 11,那么输出将为True,因为杯子总数= 14,需要3个架子,所以总碟子数= 24,需要3个架子。因此,所需的总架子数= 3 + 3 = 6,小于给定的架子数m。

为了解决这个问题,我们将遵循以下步骤-

  • sum_p:= 0,sum_q:= 0

  • 对于0到p大小范围内的i,执行

    • sum_p:= sum_p + p [i]

  • 对于0到q大小的i,执行

    • sum_q:= sum_q + q [i]

  • m_p:=(sum_p + 4)/ 5

  • m_q:=(sum_q + 9)/ 10

  • 如果m_p + m_q <= m,则

    • 返回True

  • 除此以外,

    • 返回False

示例

让我们看下面的实现以更好地理解-

def is_valid(p, q, m):
   sum_p = 0
   sum_q = 0
   for i in range(0, len(p)):
      sum_p += p[i]
   for i in range(0,len(q)):
      sum_q += q[i]
   m_p = (sum_p + 5 - 1) / 5
   m_q = (sum_q + 10 - 1) / 10
   if(m_p + m_q <= m):
      return True
   else:
      return False
p = [4, 3, 7]
q = [5, 9, 10]
m = 11

print(is_valid(p ,q ,m))

输入值

[4, 3, 7], [5, 9, 10], 11

输出结果

True
猜你喜欢