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

ขวดเบียร์ในภาษา C++


สมมติว่าเรามีตัวเลขหนึ่งตัว n ในที่นี้ n หมายถึง n ขวดเบียร์เต็ม ถ้าเราสามารถแลกเบียร์เปล่า 3 ขวดเป็นเบียร์ 1 ขวดเต็มได้ เราก็ต้องหาจำนวนขวดเบียร์ที่เราดื่มได้

ดังนั้นหากอินพุตเท่ากับ 10 เอาต์พุตจะเป็น 14

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

  • กำหนดฟังก์ชัน Solve() ซึ่งจะใช้เวลา n

  • ยกเลิก :=0

  • ในขณะที่ n>=3 ทำ -

    • q :=n / 3

    • ret :=ret + q * 3

    • n :=n - q * 3

    • n :=n + q

  • ret :=ret + n

  • รีเทิร์น

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

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int solve(int n) {
      int ret = 0;
      while(n >= 3){
         int q = n / 3;
         ret += q * 3;
         n -= q * 3;
         n += q;
      }
      ret += n;
      return ret;
   }
};
main() {
   Solution ob;
   cout << ob.solve(10);
}

อินพุต

10

ผลลัพธ์

14