该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
static void Main(string[] args)
{
Console.WriteLine("一个人去买汽水。1块钱1瓶,3个瓶盖可以换1瓶汽水,2个空瓶可以换1瓶汽水。");
Console.WriteLine("请问:20元钱总共能买到多少瓶汽水");
Console.WriteLine("----------------------------------------------------------------------");
Console.WriteLine("\r\n\r\n");
//假设手上共有20元
int memory = 20;
int pinggai = 0;
int kongping = 0;
int total = Buy(memory, ref pinggai, ref kongping);
Console.WriteLine("总计可以买{0}瓶汽水", total);
Console.WriteLine("剩余瓶盖{0},剩余空瓶{1}", pinggai, kongping);
Console.ReadKey();
}
static int Buy(int memory, ref int pinggai, ref int kongping)
{
if (memory == 0 && pinggai < 3 && kongping < 2)
return 0;
else
{
//总数
int total = 0;
if (memory != 0)
total = pinggai = kongping = memory;
//兑换瓶数
int duihuan = pinggai / 3 + kongping / 2;
pinggai = duihuan + pinggai % 3;
kongping = duihuan + kongping % 2;
total += duihuan;
return total + Buy((memory - memory / 1), ref pinggai, ref kongping);
}
}