决赛真题及答案.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
决赛真题及答案

1.泊松分酒问题 /*** * 有3个容器,容量分别为12升,8升,5升。其中12升中装满油,另外两个空着。 要求你只用3个容器操作,最后使得某个容器中正好有6升油。 下面的列表是可能的操作状态记录: 12,0,0 4,8,0 4,3,5 9,3,0 9,0,3 1,8,3 1,6,5 每行3个数据,分别表示12,8,6升容器中的油量 第一行表示初始状态,第二行表示把12升倒入8升容器后的状态,第三行是8升倒入5升,...当然,同一个题目可能有多种不同的正确操作步骤。本题目的要求是,请你编写程序,由用户输入:各个容器的容量,开始的状态,和要求的目标油量,程序则通过计算输出一种实现的步骤(不需要找到所有可能的方法)。如果没有可能实现,则输出: “不可能”。例如,用户输入: 12,8,5,12,0,0,6 用户输入的前三个数是容器容量(由大到小),接下来三个数是三个容器开始时的油量配置,最后一个数是要求得到的油量(放在哪个容器里得到都可以)则程序可以输出(答案不唯一,只验证操作可行性): 12,0,0 4,8,0 4,3,5 9,3,0 9,0,3 1,8,3 1,6,5 每一行表示一个操作过程中的油量状态。 */ import java.util.Scanner; public class Application { static int b1, b2, b3, m; public static void main(String[] args) { Scanner scanner = new Scanner(System.in); b1 = scanner.nextInt(); b2 = scanner.nextInt(); b3 = scanner.nextInt(); int cur1 = scanner.nextInt(); int cur2 = scanner.nextInt(); int cur3 = scanner.nextInt(); m = scanner.nextInt();// 目标酒量 Backtrack(cur1, cur2, cur3); } public static void Backtrack(int cur1, int cur2, int cur3) { System.out.println(cur1 + + cur2 + + cur3); if (cur1 == m || cur2 == m || cur3 == m) { System.out.print(find the key!); return; } if (cur2 != 0 cur3 != b3) { // 瓶子2有酒并且瓶子三不满 if (cur2 + cur3 = b3){ Backtrack(cur1, 0, cur2 + cur3); }else{ Backtrack(cur1, cur2 - (b3 - cur3), b3);//先把3灌满 } } else if (cur3 == b3) { // 瓶子3满的,这时就要把就倒入到瓶子1中 if (cur3 + cur1 = b1) { Backtrack(cur1 + cur3, cur2, 0); } else { Backtrack(b1, cur2, cur3 - (b1 - cur1)); } } else if (cur2 == 0) { // 当瓶子2是空的时候从瓶子1倒入酒 if (cur1 = b2) { Backtrack(cur1 - b2, b2, cur3); } else { Backtrack(0, cur1, cur3); } } } } 2.从建国到现在,有几次国庆节正好是星期日呢? import java.util.Calendar; /** * 1949年的国庆节(10月1日)是星期六。 * * 今年(2012)的国庆节是星期一。 * * 那么,从建国到现在,有几次国庆节正好是星期日呢? */ public class Application { public static void main(String[] args) { int count = 0; Calendar calendar = Calendar.getInstance(); for (int i = 1949; i 2012; i++) { calendar.set(i, 9, 1); if

文档评论(0)

weizhent2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档