第五屆藍橋杯軟體類省賽真題 Java本科A 李白打酒
阿新 • • 發佈:2019-01-27
標題:李白打酒
話說大詩人李白,一生好飲。幸好他從不開車。
一天,他提著酒壺,從家裡出來,酒壺中有酒2鬥。他邊走邊唱:
無事街上走,提壺去打酒。
逢店加一倍,遇花喝一斗。
這一路上,他一共遇到店5次,遇到花10次,已知最後一次遇到的是花,他正好把酒喝光了。
請你計算李白遇到店和花的次序,可以把遇店記為a,遇花記為b。則:babaabbabbabbbb 就是合理的次序。像這樣的答案一共有多少呢?請你計算出所有可能方案的個數(包含題目給出的)。
注意:通過瀏覽器提交答案。答案是個整數。不要書寫任何多餘的內容。
遞迴的思想方法。
程式碼如下 :
public class Main { public static void main (String args []){ fun(5,9,2); System.out.println(sum); } static int sum = 0; static int fun(int a,int b,int c){ //店 花 酒 數量 if(a > 0){ fun(a-1,b,c*2); //遇到店 酒變兩倍 同時 店減一 } if(b > 0){ fun(a,b-1,c-1); //遇到花 喝一斗酒 同時 花減一 } if(a == 0&&b == 0&&c == 1){ sum = sum +1; } return sum; } }
輸出 結果 為 14