内容发布更新时间 : 2025/10/31 12:48:50星期一 下面是文章的全部内容请认真阅读。
2014年决赛 Java本科A组
1. 结果填空 (满分15分)
标题:海盗分金币
有5个海盗,相约进行一次帆船比赛。
比赛中天气发生突变,他们被冲散了。
恰巧,他们都先后经过途中的一个无名的荒岛,并且每个人都信心满满,觉得自己是第一个经过该岛的人。
第一个人在沙滩上发现了一堆金币。他把金币分成5等份。发现刚好少一个金币。他就从自己口袋拿出一个金币补充进去,然后把属于自己的那份拿走。
第二个到达的人也看到了金币,他也和第一个人一样,把所有金币5等分,发现刚好缺少一个金币,于是自己补进去一个,拿走了属于自己的那份。
第三,第四,第五人的情况一模一样。
等他们到了目的地,都说自己的情况,才恍然大悟,一起去荒岛找金币,然而再也没有找到荒岛。他们都惋惜地说:岛上还有一千多枚金币呢!
请你根据这些信息,推算荒岛上最初有多少金币?
这是一个整数,请通过浏览器提交答案,不要填写任何多余的内容(比如说明性的文字等)
2. 结果填空 (满分45分)
标题:六角幻方
把 1 2 3 ... 19 共19个整数排列成六角形状,如下:
* * * * * * * * * * * * * * * * * * *
第 1/10 页
要求每个直线上的数字之和必须相等。共有15条直线哦!
再给点线索吧!我们预先填好了2个数字,第一行的头两个数字是:15 13,参见图【p1.png】,黄色一行为所求。
请你填写出中间一行的5个数字。数字间用空格分开。
这是一行用空格分开的整数,请通过浏览器提交答案,不要填写任何多余的内容(比如说明性的文字等)
3. 代码填空 (满分30分)
标题:格子放鸡蛋
X星球的母鸡很聪明。它们把蛋直接下在一个 N * N 的格子中,每个格子只能容纳一枚鸡蛋。它们有个习惯,要求:每行,每列,以及每个斜线上都不能有超过2个鸡蛋。如果要满足这些要求,母鸡最多能下多少蛋呢,有多少种摆放方法呢?
下面的程序解决了这个问题,请仔细分析程序逻辑,推断划线处缺少的代码。
public class A { static int max = 0; static int T = 0; static final int N = 6; // 只能在(r,c) 以及其右,其下放置
第 2/10 页
static void f(int[][] da, int r, int c) { if(r>=N){ int n = count(da); if(n>max) { max = n; T = 0; } if(n==max) T++; return; } //计算一下步放哪 int r_next = r; int c_next = c + 1; if(c_next>=N){ c_next = 0; r_next++; } if(____________________){ // 填空位置 da[r][c] = 1; f(da, r_next, c_next); } da[r][c] = 0; f(da, r_next, c_next); }
static int count(int[][] da) {  int n = 0;    for(int i=0; i static int spy(int[][] da, int r, int c) {  int m=0;    第    3/10 页                                                     // 该行  int n=0;   for(int i=0; i  //该列  n=0;  for(int i=0; i public static void main(String[] args) {  int[][] da = new int[N][N];    f(da, 0, 0);    System.out.println(max);  第    4/10 页                                                      System.out.println(T);  } }   注意:通过浏览器提交答案。只填写缺少的内容,不要填写任何多余的内容(例如:说明性文字或已有符号)。   4. 程序设计(满分30分)    标题:排列序数      如果用a b c d这4个字母组成一个串,有4!=24种,如果把它们排个序,每个串都对应一个序号:    abcd  0   abdc  1   acbd  2   acdb  3   adbc  4   adcb  5   bacd  6   badc  7   bcad  8   bcda  9   bdac  10   bdca  11   cabd  12   cadb  13   cbad  14   cbda  15   cdab  16   cdba  17   ...       现在有不多于10个两两不同的小写字母,给出它们组成的串,你能求出该串在所有排列中的序号吗?    【输入格式】 一行,一个串。   【输出格式】  一行,一个整数,表示该串在其字母所有排列生成的串中的序号。注意:最小的序号是0。    第    5/10    页