有两桶水桶,一个可装7升水b,一个装水11升a,怎样量出2升

/ 智力题java / 1 条评论 / 506浏览

 java算出有两桶水桶,一个可装7升水b,一个装水11升a,怎样量出2升 

基本思路: 

 b只要还有水,就不加水;

 a只要满说,就把a全部倒掉;

 每次b往a倒水,倒到a满,或者b没水为止


package zjd.test;

/**
 * 有两桶水桶,一个可装7升水,一个装水11升,怎样量出2升
 * @author 庄佳弟
 *
 */
public class Test001 {

	public static void main(String[] args) {
		int a = 7;//容量
		int a1 = 0;//当前水量
		int b = 11;
		int b1 = 0;
		int tager = 2;
		daoshui(a, a1, b, b1, tager);
	}
	public static void daoshui(int a,int a1,int b,int b1,int tager){		
		if(a1==0){
			a1 = a;
			System.out.println("a加水" + a);
		}
		if(b1==b){
			b1=0;
			System.out.println("b倒水" + b);
		}
		
		if((a1+b1)>b){
			int tem = b - b1;
			a1 = a1 - tem;
			b1 = b1 + tem;
			System.out.println("a倒水" + tem + ",b加水" + tem + ",a有水" + a1 + ",b有水"  + b1);					
		}else{						 
			b1 = b1 + a1;
			System.out.println("a倒水" + a1 + ",b加水" + a1 + ",a有水0"  + ",b有水"  + b1);
			a1 = 0;
		}
		if(b1!=tager){
			daoshui(a,a1,b,b1,tager);
		}
	}
}


运行结果:

a加水7

a倒水7,b加水7,a有水0,b有水7

a加水7

a倒水4,b加水4,a有水3,b有水11

b倒水11

a倒水3,b加水3,a有水0,b有水3

a加水7

a倒水7,b加水7,a有水0,b有水10

a加水7

a倒水1,b加水1,a有水6,b有水11

b倒水11

a倒水6,b加水6,a有水0,b有水6

a加水7

a倒水5,b加水5,a有水2,b有水11

b倒水11

a倒水2,b加水2,a有水0,b有水2

  1. 520

    基佬在哪里

    回复
点击这里给我发消息
嘿!有什么能帮到您的吗?