这应该是一个面试题

J2EE 码拜 7年前 (2017-04-29) 1052次浏览
有27个人要喝水,每三个空瓶子可以换一瓶水,问需要买多少瓶水,请用循环的方法写出来,递归还没学到那。请教这应该是一个面试题这应该是一个面试题这应该是一个面试题
解决方案

10

public class Heshui {
	private static int counter = 0;//新水计数
	private static int emptyCount = 0;//空瓶计数

	public static void main(String[] args) {

		for (int i = 1; i <= 27; i++) {
			drink(i);
		}
		System.out.println("至少需要"+counter+"瓶水");
	}
	public static void drink(int num){
		System.out.println("第"+num+"个人喝水前空瓶数:"+emptyCount);
		if(emptyCount > 2){//换新水
			emptyCount -= 2;
			System.out.println("第"+num+"个人用三个空瓶换了一瓶,喝水后空瓶数:"+emptyCount);
			return;
		}
		//拿新水
		counter ++;
		emptyCount ++;
		System.out.println("第"+num+"个人拿了一瓶新水,拿的新水数:"+counter+",喝水后空瓶数:"+emptyCount);
	}
}

这样的话是至少19瓶水,不知道有没有忽漏

10

引用:
public class Heshui {
	private static int counter = 0;//新水计数
	private static int emptyCount = 0;//空瓶计数

	public static void main(String[] args) {

		for (int i = 1; i <= 27; i++) {
			drink(i);
		}
		System.out.println("至少需要"+counter+"瓶水");
	}
	public static void drink(int num){
		System.out.println("第"+num+"个人喝水前空瓶数:"+emptyCount);
		if(emptyCount > 2){//换新水
			emptyCount -= 2;
			System.out.println("第"+num+"个人用三个空瓶换了一瓶,喝水后空瓶数:"+emptyCount);
			return;
		}
		//拿新水
		counter ++;
		emptyCount ++;
		System.out.println("第"+num+"个人拿了一瓶新水,拿的新水数:"+counter+",喝水后空瓶数:"+emptyCount);
	}
}

这样的话是至少19瓶水,不知道有没有忽漏

赞一个

10

public class Csdn{
public static void main(String args[]){
System.out.println(Water(27));
}
public static int Water(int num){
int x=0,ex=0;
while(num>3){
num-=4;
x=x+3;//x是需要买的水的瓶数。
ex+=1;//ex是空瓶数量。
if(ex%3==0){
num=num-1;
ex=1;
}
}
if(num<=3){
if(num==3){
x=x+2;
}
else if(num==2){
if(ex==2){
x=x+1;
}
else if(ex==1)
x=x+2;
}
else
x=x+1;
}
return x;
}
}

10

public class Main {
    public static void main(String[] arg) {
        int people = 24;
        int sum = 3;
        int flag = 3;
        while (people > 0) {
            if (flag % 3 == 0) {
                flag++;
                people--;
            }
            sum++;
            flag++;
            people--;
        }
        System.out.println(sum);
    }
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明这应该是一个面试题
喜欢 (0)
[1034331897@qq.com]
分享 (0)