Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Botol Air

Botol Air

王林
王林asal
2024-07-17 08:48:51339semak imbas

1518. Botol Air

Mudah

Ada botol air numBottles yang pada mulanya penuh dengan air. Anda boleh menukar botol air kosong numExchange dari pasaran dengan satu botol air penuh.

Pembedahan meminum sebotol air penuh mengubahnya menjadi botol kosong.

Memandangkan dua integer numBottles dan numExchange, kembalikan bilangan maksimum botol air yang boleh anda minum.

Contoh 1:

Water Bottles

  • Input: numBottles = 9, numExchange = 3
  • Output: 13
  • Penjelasan: Anda boleh menukar 3 botol kosong untuk mendapatkan 1 botol air penuh. Bilangan botol air yang anda boleh minum: 9 + 3 + 1 = 13.

Contoh 2:

Water Bottles

  • Input: numBottles = 15, numExchange = 4
  • Output: 19
  • Penjelasan: Anda boleh menukar 4 botol kosong untuk mendapatkan 1 botol air penuh. Bilangan botol air yang boleh anda minum: 15 + 3 + 1 = 19.

Kekangan:

  • 1 <= numBottles <= 100.
  • 2 <= numExchange <= 100

Penyelesaian:

class Solution {

    /**
     * @param Integer $numBottles
     * @param Integer $numExchange
     * @return Integer
     */
    function numWaterBottles($numBottles, $numExchange) {
        $totalDrunk = 0;
        $emptyBottles = 0;

        while ($numBottles > 0) {
            // Drink all the current full bottles
            $totalDrunk += $numBottles;

            // Collect the empty bottles
            $emptyBottles += $numBottles;

            // Exchange the empty bottles for new full ones
            $numBottles = floor($emptyBottles / $numExchange);
            $emptyBottles = $emptyBottles % $numExchange;
        }

        return $totalDrunk;
    }
}




  • LinkedIn
  • GitHub

Atas ialah kandungan terperinci Botol Air. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn