package com.telecom.myshiro.test;
import java.util.ArrayList;
import java.util.List;
/**
* 这个是用来测试一个算法的
* 有十个空瓶子 每三个空瓶子可以换一瓶汽水
* 如果有两个空瓶子,可以和老板借一瓶汽水
* 如果有n个空瓶 ,可以换多少瓶汽水
*
*/
public class suanfaceshi {
int suma=0;
/**
* 每三个空瓶子可以换一瓶汽水
* 两个空瓶子可以借一瓶,喝完再还,三个空瓶
*/
//传进去一个数,给出来这个数对3 求余的余数和这个商
//得记录这个 数的商
// 返回的集合里面只有两个数,一个是a+b 一个是a
// a+b 是进入下一次的计算, a 是拿出来做加的计算
public List<Integer> doJisuan(int num){
List<Integer> nums=new ArrayList<Integer>();
if (num>=2){
int a =num/3;
int b=num%3;
nums.add(a+b);
nums.add(a);
return nums;
}else{
return nums;
}
}
// 在这里给出一个总的空瓶数,返回最多能喝到的瓶数
public int test (int num){
if(num<=2){
return 0;
}
suanfaceshi t=new suanfaceshi();
List<Integer> ps=new ArrayList<Integer>();
ps=t.doJisuan(num);
//如果商 和余数之和大于2则可以继续算下去
if(ps.get(0)>2){
suma+=(int)ps.get(1);
return test(ps.get(0));
}
// 如果还有两个空瓶子
if (ps.get(1)==2){
suma=suma+ps.get(1)+1;
}
// 如果还有一个空瓶子
if(ps.get(1)==1){
suma+=ps.get(1);
}
return suma;
}
public static void main(String[] args) {
suanfaceshi t=new suanfaceshi();
int a= t.test(-3);
System.out.println(a);
}
}