每日算法練習之李白喝酒問題

李白打酒  
話說大詩人李白,一生好飲。幸好他從不開車。 
  一天,他提着酒壺,從家裏出來,酒壺中有酒2鬥。他邊走邊唱:
  無事街上走,提壺去打酒。     
  逢店加一倍,遇花喝一斗。 
  這一路上,他一共遇到店5次,遇到花10次,已知最後一次遇到的是花,他正好把酒喝光了。  

  請你計算李白遇到店和花的次序,可以把遇店記爲a,遇花記爲b。則:babaabbabbabbbb 就是合理的次序。像這樣的答案一共有多少呢?請你計算出所有可能方案的個數(包含題目給出的)。


package myjava;
/**
 * @author wang:
 * @version 創建時間:2016年8月23日 上午8:16:22
 * 類說明
 * 李白打酒  
話說大詩人李白,一生好飲。幸好他從不開車。 
  一天,他提着酒壺,從家裏出來,酒壺中有酒2鬥。他邊走邊唱:
  無事街上走,提壺去打酒。     
  逢店加一倍,遇花喝一斗。 
  這一路上,他一共遇到店5次,遇到花10次,已知最後一次遇到的是花,他正好把酒喝光了。  
  請你計算李白遇到店和花的次序,可以把遇店記爲a,遇花記爲b。則:babaabbabbabbbb 
  就是合理的次序。像這樣的答案一共有多少呢?請你計算出所有可能方案的個數(包含題目給出的)。
 * 
 */
public class Libai {
	public static int jishu;
	public static void main(String[] args) {
		drink(2,5,10);
		System.out.println(jishu);
	}
	public static void drink(int dou,int a,int b){
		if(dou<1||a<0||b<1){
			return;
		}
		if(dou == 1&&a==0&&b==1){
			jishu++;
		}
		if(dou>0){
			if(a>0){
				drink(dou*2,a-1,b); 
			}
			if(b>0){
				drink(dou-1,a,b-1);
			}
		}
			
	}

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章