再次讨论1元买水问题哦,使用迭代法java和python版本

tech2026-09-28  0

本次是使用的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个盖子可兑换一瓶水,

问20元可以兑换几瓶水?

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))

for i in range(1, 21):

print(f’{drinkNums((i))}’)

`

最新回复(0)