本次是使用的java语言测试的哦,抽离出一个方法!具有推广下来的建议哦!
package cn.gson.oasys;
import java.util.Scanner;
public class DrinkWater { public static void main(String[] args) { buy(20); } public static int buy(int money) { // System.out.print(“请输入金额:”); // int money = scan.nextInt(); //金额 int bottle = money; //空瓶 int cap = money; //瓶盖 int sum = money; //可以喝的汽水的总瓶数 System.out.println(money+“元直接买的瓶数:”+sum); while(true){ //换取的饮料瓶数 int changeBottle = bottle/2; int changeCap = cap/3; int change = changeBottle + changeCap; //换取后剩下 int balBottle = bottle%2; int balCap = cap%3; //当前已经喝的总瓶数 sum = sum + change; //饮料喝完后的总的空瓶数喝瓶盖数 bottle = balBottle + change; cap = balCap + change;
if(bottle<2 && cap <3){ break; } } System.out.println(money+"元可以喝到的总的瓶数:"+sum); return sum; }}
欢迎大家一起讨论哦! 以上是java 的 下面是python 版本的哦,不是单纯的重复哦,有区别地方哦!`# 1元买1瓶水,2个空瓶子可以兑换一瓶水,3个盖子可兑换一瓶水,
def drinkNums(money): # 开始先没有兑换时的状态下,多少钱就对应多少瓶子和盖子 bottle = money cap = money sum = money while True: # 换取的饮料瓶数 changeBottle = (bottle // 2) changeCap = (cap // 3) change = (changeBottle + changeCap) # 换取后剩下 balBottle = bottle % 2 balCap = cap % 3 # 当前已经喝的总瓶数 sum = sum + change # 饮料喝完后的总的空瓶数喝瓶盖数 bottle = balBottle + change cap = balCap + change if bottle < 2 and cap < 3: break return sum
print(drinkNums(20))
`
