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