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

โปรแกรมหาจำนวนน้ำสูงสุดที่เราดื่มได้ในภาษา Python


สมมติว่ามีขวดน้ำเต็มจำนวน n ขวด เราสามารถแลกเปลี่ยนขวดน้ำเปล่า m เป็นขวดน้ำเต็มได้เพียงขวดเดียว ตอนนี้ดื่มน้ำเต็มขวดทำให้เป็นขวดเปล่า เราต้องหาขวดน้ำให้ได้มากที่สุด

ดังนั้นหากอินพุตเป็น n =9, m =3 ผลลัพธ์จะเป็น 13 เพราะในตอนแรกเรามี 9 ขวด ดังนั้นหลังจากดื่มทุกขวดแล้วเราจะได้ 9/3 =3 ขวดเต็มหลังจากดื่มจนหมด มีขวดเปล่าสามขวดแล้วเอามาใช้ก็ซื้อไปดื่มได้ เราจึงทำครบ 9 + 3 + 1 =13 ขวด

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • x:=n, s:=0, k:=0

  • ในขณะที่ x>=m ทำ

    • k:=x mod m

    • x:=ผลหารของ x / m

    • s:=s + x

    • x:=x + k

  • คืนค่า n + s

ตัวอย่าง (Python)

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

def solve(n, m):
   x=n
   s=0
   k=0
   while x >= m:
      k=x % m
      x=x // m
      s=s + x
      x=x + k
   return n + s

n = 9
m = 3
print(solve(n, m))

อินพุต

9, 3

ผลลัพธ์

13