李白打酒-----第五届蓝桥杯
2014-09-28 14:34
218 查看
话说大诗人李白,一生好饮。幸好他从不开车。
一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:
无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。
结果:
ababbbbbabababb
abbabbabbbababb
baababbbbbababb
abbabbbaabbbabb
abbbaabbabbbabb
baabbabbabbbabb
babaababbbbbabb
abbabbbabaabbbb
abbbaabbbaabbbb
baabbabbbaabbbb
abbbabaabbabbbb
baabbbaabbabbbb
babaabbabbabbbb
bababaababbbbbb
可能的方案有:14种
此程序运行,花费的时间是0.009秒.
一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:
无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。
public class 李白打酒 { public static void main(String[] args) { long start = System.currentTimeMillis(); int sum = 1 << 15; int jiu = 2; int a, b; int count = 0; char c[] = new char[15]; // 设0表示a,1表示b for (int i = 1; i < sum; i++) { a = 0; b = 0; jiu = 2; for (int j = 0; j <= 14; j++) { // 最后一次一定遇到的花 if (((i >> 14) & 1) == 0) break; int temp = (i >> j) & 1; if (temp == 0) { if (a >= 5)// 路过的次数有着严格的限制 break; jiu = jiu * 2; a++; c[j] = 'a'; } else if (temp == 1) { if (b >= 10) break; jiu--; b++; c[j] = 'b'; } if (jiu < 0)// 酒的数量是不可能是负数的 break; } if (jiu == 0 && a == 5 && b == 10) { count++; print(new String(c)); } } print("可能的方案有:" + count + "种"); long end = System.currentTimeMillis(); print("此程序运行,花费的时间是" + ((end - start) / 1000.0) + "秒."); } public static void print(Object o) { System.out.println(o.toString()); } }
结果:
ababbbbbabababb
abbabbabbbababb
baababbbbbababb
abbabbbaabbbabb
abbbaabbabbbabb
baabbabbabbbabb
babaababbbbbabb
abbabbbabaabbbb
abbbaabbbaabbbb
baabbabbbaabbbb
abbbabaabbabbbb
baabbbaabbabbbb
babaabbabbabbbb
bababaababbbbbb
可能的方案有:14种
此程序运行,花费的时间是0.009秒.
相关文章推荐
- 第五届蓝桥杯软件类省赛真题-Java高职-李白打酒
- 第五届蓝桥杯【省赛试题3】李白打酒
- 2014年第五届蓝桥杯预赛部分题目—李白打酒
- 第五届蓝桥杯—李白打酒
- 第五届蓝桥杯 软件类省赛真题 第六题:李白打酒
- 第五届蓝桥杯初赛-李白打酒
- 第五届蓝桥杯软件类省赛真题 Java本科A 李白打酒
- 山东省第五届蓝桥杯 ///标题:李白打酒//c/c++组
- 第五届蓝桥杯软件类省赛真题-JAVA-A-2_李白打酒
- 蓝桥杯第五届B组 李白打酒
- 2014第五届蓝桥杯预赛试题本科c++李白打酒
- 2014年第五届蓝桥杯预赛题目之李白打酒
- 第五届蓝桥杯C++B组 李白打酒
- 蓝桥杯_第五届_李白打酒
- 【蓝桥杯题目分析】2014年第五届——第三题:李白打酒
- (蓝桥杯第五届B组)李白打酒 DFS
- 2014年第五届蓝桥杯试题C/C++程序设计B组——李白打酒
- 第五届蓝桥杯A组java—李白打酒
- 李白打酒(第五届蓝桥杯)
- 2015年第五届蓝桥杯预赛题目JAVA软件开发高职高专组李白打酒