Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมนับ 5-Star Reviews เพิ่มเติมเพื่อให้ถึง Threshold ใน Python

ให้ reviews=[[5-star, total]] และ threshold% หา 5-star เพิ่มเติมน้อยสุดทำให้ % ≥ Threshold

ตัวอย่าง: reviews=[[3,4],[1,2],[4,6]], t=78 → 7 (รวม 8/12=66.7% → ต้องการ 7 เพิ่ม → 15/19=78.9%)

ขั้นตอน (Math)

  1. รวม a=sum(5-star), b=sum(total)
  2. ถ้า a*100 ≥ t*b: 0
  3. delta = t*b - 100*a
  4. คืน (delta + (99-t)) // (100-t) (Ceiling Division)

ตัวอย่างโค้ด

def solve(reviews, t):
    a = 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))  # Output: 7

อินพุต

[[3, 4], [1, 2],[4, 6] ],78

เอาต์พุต

7