1、1元钱一瓶牛奶,喝完后两个空瓶换一瓶牛奶,问:你有N元钱,最多可以喝到几瓶牛奶?(请用递归思路java代码编写)
时间: 2024-02-25 18:52:05 浏览: 106
Java逻辑编程:空瓶可换饮料,总共喝了多少瓶饮料
以下是用Java编写的递归函数:
```java
public int getMilk(int money, int bottles) {
if (money < 1 && bottles < 2) {
return 0;
}
int curMilk = money / 1; // 当前能买到的牛奶瓶数
int nextBottles = curMilk + bottles; // 下次可用的空瓶数
return curMilk + getMilk(nextBottles / 2, nextBottles % 2);
}
```
函数的参数分别表示当前拥有的钱数和空瓶数。首先判断如果钱数小于1且空瓶数小于2,那么就无法买到更多的牛奶,返回0。否则,计算当前能买到的牛奶瓶数,以及买完牛奶后得到的空瓶数。然后递归调用函数,将下次可用的空瓶数和剩余的钱数作为参数传入,并将返回值加上当前买到的牛奶瓶数。最终返回的值即为最多可以喝到的牛奶瓶数。
阅读全文