话说大诗人李白,一生好饮。幸好他从不开车。
无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝
光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:
babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方
案的个数(包含题目给出的)。
无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝
光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:
babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方
案的个数(包含题目给出的)。
注意:通过浏览器提交答案。答案是个整数。不要书写任何多余的内容。
package com.example.mygraph;
public class MyGraph {
private static int count = 0;
public static void main(String[] args) {
char[] charString = new char[15];
fun(charString, 0, 0, 0, 2);
System.out.println(count);
}
public static void fun(char[] charString, int i, int store, int flower, int wine) {
//检查是否已经越过规定界限,如果越过跳回去,执行后面的代码
if (store > 5 || flower > 10)
return;
else
//如果没有越过界限则检查,是否符合条件
if (store == 5 && flower == 10 && i == 15) {
if (charString[14] == 'b' && wine == 0) {
for (int j = 0; j < charString.length; j++) {
System.out.print(charString[j]);
}
System.out.println();
count++;
}
return;
}
charString[i] = 'b';
fun(charString, i + 1, store, flower + 1, wine - 1);
charString[i] = 'a';
fun(charString, i + 1, store + 1, flower, wine * 2);
}
}