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
广告
数据结构
网络
关系型数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
JavaScript
PHP