//计算:  每瓶啤酒2元,2个空酒瓶或4个瓶盖可换1瓶啤酒。10元最多可喝多少瓶啤酒?

            double beer = 2;
            double money = 10;
            Console.WriteLine($"每瓶啤酒2元,2个空酒瓶或4个瓶盖可换1瓶啤酒。{money}元最多可喝多少瓶啤酒?");
            int beerCount = (int)(money / beer);
            int capCount = beerCount;
            int bottleCount = beerCount;
            Console.Write($"-------------> {money}元购啤酒{beerCount},现存瓶{bottleCount},盖{capCount} ");
            Console.WriteLine();
            Getbeer(ref capCount, ref bottleCount, ref beerCount);
            Console.WriteLine($"\r\n\r\n{money}元,可以喝{beerCount},剩余瓶盖{capCount},剩余空瓶{bottleCount}");
            Console.ReadLine();
  static void Getbeer(ref int capCount, ref int bottleCount, ref int beerCount)
        {
            int Newbeer = 0;
           
            if (bottleCount >= 2)
            {
                Newbeer = bottleCount / 2;
                Console.WriteLine($"\r\n空瓶{Newbeer * 2},兑换啤酒{Newbeer}");
                beerCount += Newbeer;
                bottleCount = bottleCount - Newbeer * 2 + Newbeer;
                capCount += Newbeer;
                Console.Write($"------------->  已购啤酒{beerCount},现存瓶{bottleCount},盖{capCount} ");
            }
            if (capCount >= 4)
            {
                Newbeer = capCount / 4;
                Console.WriteLine($"\r\n瓶盖{Newbeer * 4},兑换啤酒{Newbeer}");
                beerCount += Newbeer;
                capCount = capCount - Newbeer * 4 + Newbeer;//瓶盖数量
                bottleCount += Newbeer;//空瓶数量
                Console.Write($"------------->  已购啤酒{beerCount},现存瓶{bottleCount},盖{capCount} ");
            }
            if (capCount >= 4 || bottleCount >= 2)
                Getbeer(ref capCount, ref bottleCount, ref beerCount);
        }