本文共 910 字,大约阅读时间需要 3 分钟。
题目详述:
题目解析:当有n个空瓶时候,我们设总共可以喝total瓶饮料,那么当n>2时,说明我们可以去换饮料喝。3个换一瓶,那么可以换n/3瓶饮料。接下来,这些饮料喝完后,势必还有空瓶。那么喝完n/3瓶饮料之后的空瓶数是多
少? 答案是:n/3+n%3。这里需要注意:n/3代表换来的饮料,但是这些喝完之后,不就是空瓶吗?相同的为什么需要n%3? 因为比如n=4,最后的空瓶数应该是2。不就是n/3+n%3吗?到这里,我们在看一下。n>2时,可以去换,那 么n=2时,我们可以去商铺借一瓶饮料。import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n; while(sc.hasNext()){ n =sc.nextInt(); if(n!=0) { System.out.println(drink(n)); } } } private static int drink(int n) { int total = 0;//饮料总数 //当大于两个空瓶的时候才可以换饮料 while(n > 2) { total = total+n/3; //n/3-->能够换来的饮料 n = n/3 + n%3; //新的空瓶子个数--》n%3可能会不能整除 } //如果n==2,说明有两个空瓶可以喝商家借一瓶饮料 if(n == 2) { total = total + 1; } return total; }}
转载地址:http://nejwi.baihongyu.com/