3个可乐瓶可以换一瓶可乐,现在有364瓶可乐,问一共可以喝多少平可乐,剩下几个空瓶
存在两种思路,递归和while循环
1.递归
注意:使用递归需要注意,一次操作赢严格限制只执行该轮操作
static void Main(string[] args)
{
int[] colarData = ColaNumber(364);
Console.WriteLine("总共可以有 " + colarData[0] + "可乐," + colarData[1] + "可乐瓶");
Console.ReadKey();
}
static int[] ColaNumber(int colarNumber)
{
int[] colarData = new int[2];
if ((colarNumber) < 3)
{
colarData[0] = colarNumber/3;
colarData[1] = colarNumber/ 3 + colarNumber % 3;
return colarData;
}
int newColarNumber = colarNumber / 3;
int newColarBottleNumber = colarNumber / 3 + colarNumber % 3;
colarData[0] = newColarNumber;
colarData[1] = newColarBottleNumber;
int[] tempData = ColaNumber(newColarBottleNumber);
colarData[0] += tempData[0];
colarData[1] = tempData[1];
return colarData;
}
2.while循环法
static void Main(string[] args)
{
int cola = 364;
int sum = cola;
while (cola >= 3)
{
sum = sum + cola / 3;
cola = cola / 3 + cola % 3;
}
Console.WriteLine(“可以喝”+ sum + “瓶可乐,剩下”+cola+“可乐瓶”);
Console.ReadKey();
}