Python程序:计算达到阈值百分比所需的五星评价数量
假设我们有一个名为reviews的列表和一个阈值t。reviews[i]中的每个项目都具有[x, y],表示产品i有x个五星级评价和y个评价。我们必须找到我们需要额外添加的五星级评价的最小数量,以便这些项目的五星级评价百分比至少为t%。
因此,如果输入类似于reviews = [[3, 4],[1, 2],[4, 6]] threshold = 78,则输出将为7,因为总共有8个五星级评价和12个评价。为了达到78%的五星级评价,我们需要7个额外的五星级评价。
为了解决这个问题,我们将遵循以下步骤:
a := 0, b := 0
对于reviews中的每个五星级计数c和评价计数d,执行以下操作:
a := a + c
b := b + d
如果 a * 100 >= t * b,则
返回 0
delta := t * b - 100 * a
返回 (delta +(99 - t))/(100 - t) 的向下取整结果
示例
让我们看看下面的实现来更好地理解
def solve(reviews, t): a = 0 b = 0 for c, d in reviews: a += c b += d if a * 100 >= t * b: return 0 delta = t * b - 100 * a return (delta + (99 - t)) // (100 - t) reviews = [ [3, 4], [1, 2], [4, 6] ] t = 78 print(solve(reviews, t))
输入
[[3, 4], [1, 2],[4, 6] ],78
输出
7
广告