登錄 |創建賬號 |找回密碼
查看: 96|回復: 0

[通用] 瓶盖换啤酒问题

[複製鏈接]

23

主題

6

回帖

130

積分

管理員

Rank: 9Rank: 9Rank: 9

積分
130
發表於 2024-4-2 14:16:57 | 顯示全部樓層 |閱讀模式
  1. #include <iostream>

  2. class BeerCalculator {
  3. public:
  4.     int calculateBeers(int money) {
  5.         int beers = money / 2; // 初始买的啤酒数
  6.         int caps = beers; // 初始瓶盖数
  7.         int bottles = beers; // 初始空瓶数

  8.         while (caps >= 4 || bottles >= 2) {
  9.             while (caps >= 4) {
  10.                 beers++;
  11.                 caps -= 3; // 用4个瓶盖换一瓶,相当于少了3个瓶盖
  12.                 bottles++; // 得到一个空瓶
  13.             }

  14.             while (bottles >= 2) {
  15.                 beers++;
  16.                 bottles -= 1; // 用2个空瓶换一瓶,相当于少了1个空瓶
  17.                 caps++; // 得到一个瓶盖
  18.             }
  19.         }

  20.         return beers;
  21.     }
  22. };

  23. int main() {
  24.     BeerCalculator calculator;
  25.     int money = 10; // 初始金额
  26.     std::cout << "Total beers you can drink: " << calculator.calculateBeers(money) << std::endl;
  27.     return 0;
  28. }
複製代碼


回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 創建賬號

本版積分規則

Archiver|手機版|小黑屋|九派社區 ( 苏ICP备07501547号-12 )

GMT+8, 2024-5-21 15:49 , Processed in 0.041994 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回復 返回頂部 返回列表