第七届蓝桥杯决赛JavaC组真题——详细答案对照(完整版)

简介: 第七届蓝桥杯决赛JavaC组真题——详细答案对照(完整版)

A、平方末尾

能够表示为某个整数的平方的数字称为“平方数”

比如,25,64

虽然无法立即说出某个数是平方数,但经常可以断定某个数不是平方数。

因为平方数的末位只可能是:[0, 1, 4, 5, 6, 9] 这6个数字中的某个。

所以,4325435332必然不是平方数。


如果给你一个2位或2位以上的数字,你能根据末位的两位来断定它不是平方数吗?


请计算一下,一个2位以上的平方数的最后两位有多少种可能性?


注意:需要提交的是一个整数,表示2位以上的平方数最后两位的不同情况数。

不要填写任何多余内容(比如,说明解释文字等)


package action;
import java.util.HashSet;
public class demo {
  public static HashSet<String> set = new HashSet<String>();
  public static void main(String[] args) {
  for (long i = 10; i <= 1000000; i++) {
    String a = "" + (i * i / 10 % 10) * 10 + "" + i * i % 10;
    set.add(a);
  }
  System.out.println(set.size());
  }
}


B、七星填数

如图【图1.png】所示。


在七角星的14个节点上填入1~14 的数字,不重复,不遗漏。

要求每条直线上的四个数字之和必须相等。


图中已经给出了3个数字。

请计算其它位置要填充的数字,答案唯一。


填好后,请提交绿色节点的4个数字(从左到右,用空格分开)


比如:12 5 4 8

当然,这不是正确的答案。


注意:只提交4个用空格分开的数字,不要填写任何多余的内容。

image.png



package action;
import java.util.HashSet;
public class demo {
  public static int sum = 0;
  public static int four = 0;
  public static void swap(int[] A, int i, int j) {
  int temp = A[i];
  A[i] = A[j];
  A[j] = temp;
  }
  public static void dfs(int[] A, int step) {
  if (step == A.length) {
    int[] count = new int[7];
    count[0] = A[0] + A[1] + A[2] + A[3];
    count[1] = A[0] + A[4] + A[6] + A[9];
    count[2] = A[1] + A[4] + 6 + 14;
    count[3] = A[2] + A[5] + 6 + 11;
    count[4] = A[6] + A[8] + A[10] + 14;
    count[5] = A[7] + A[8] + A[9] + 11;
    count[6] = A[3] + A[5] + A[7] + A[10];
    HashSet<Integer> set = new HashSet<Integer>();
    for (int i = 0; i < 7; i++)
    set.add(count[i]);
    if (set.size() == 1) {
    for (int i = 0; i < A.length; i++) {
      System.out.print(A[i] + " ");
      four++;
      if(four==4)break;
    }
    System.out.println();
    }
    sum++;
    return;
  } else {
    for (int i = step; i < A.length; i++) {
    swap(A, i, step);
    dfs(A, step + 1);
    swap(A, i, step);
    }
  }
  }
  public static void main(String[] args) {
  int[] A = { 1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 13 };
  dfs(A, 0);
  }
}



C、打印数字

小明写了一个有趣的程序,给定一串数字。

它可以输出这串数字拼出放大的自己的样子。


比如“2016”会输出为:

22222   00000       1   6666

2     2 0     0    1 1  6

     2 0     0      1  666666

    2  0     0      1  6     6

  2    0     0      1  6     6

2    2 0     0      1  6     6

2222222  00000     1111  66666


请仔细分析代码,填写划线部分缺少的内容。


public class Main
{
    static void f(int n)
    {
        String[][] di = 
    {{" 00000 ",
    "0     0",
    "0     0",
    "0     0",
    "0     0",
    "0     0",
    " 00000 "},
    {"     1 ",
    "   1 1 ",
    "     1 ",
    "     1 ",
    "     1 ",
    "     1 ",
    "   1111"},
    {" 22222 ",
    "2     2",
    "      2",
    "     2 ",
    "   2   ",
    " 2    2",
    "2222222"},
    {" 33333 ",
    "3     3",
    "      3",
    "  3333 ",
    "      3",
    "3     3",
    " 33333 "},
    {"   44  ",
    "  4 4  ",
    " 4  4  ",
    "4   4  ",
    "4   4  ",
    "4444444",
    "    4  "},
    {" 55555 ",
    " 5     ",
    "555555 ",
    "      5",
    "      5",
    "5     5",
    " 55555 "},
    {" 6666  ",
    "6      ",
    "666666 ",
    "6     6",
    "6     6",
    "6     6",
    " 66666 "},
    {"7777777",
    "7    7 ",
    "    7  ",
    "   7   ",
    "  7    ",
    " 7     ",
    " 7     "},
    {" 88888 ",
    "8     8",
    "8     8",
    " 88888 ",
    "8     8",
    "8     8",
    " 88888 "},
    {" 99999 ",
    "9     9",
    "9     9",
    " 999999",
    "      9",
    "9     9",
    " 99999 "}};
        char[] cc = (""+n).toCharArray(); 
        for(int i=0; i<di[0].length; i++){
            for(int j=0; j<cc.length; j++){
                System.out.print( ____________________ + " ");  //填空位置
            }
            System.out.println();
        }    
    }
    public static void main(String[] args)
    {
        f(2016);
    }
}

注意:只提交划线部分缺少的代码,不要添加任何题面已有代码或符号。

也不要提交任何说明解释文字等。


填空内容:【di[cc[j]-'0'][i]】


编码:


package action;
public class demo {
  static void f(int n) {
  String[][] di = { { " 00000 ", "0     0", "0     0", "0     0", "0     0", "0     0", " 00000 " },
    { "     1 ", "   1 1 ", "     1 ", "     1 ", "     1 ", "     1 ", "   1111" },
    { " 22222 ", "2     2", "      2", "     2 ", "   2   ", " 2    2", "2222222" },
    { " 33333 ", "3     3", "      3", "  3333 ", "      3", "3     3", " 33333 " },
    { "   44  ", "  4 4  ", " 4  4  ", "4   4  ", "4   4  ", "4444444", "    4  " },
    { " 55555 ", " 5     ", "555555 ", "      5", "      5", "5     5", " 55555 " },
    { " 6666  ", "6      ", "666666 ", "6     6", "6     6", "6     6", " 66666 " },
    { "7777777", "7    7 ", "    7  ", "   7   ", "  7    ", " 7     ", " 7     " },
    { " 88888 ", "8     8", "8     8", " 88888 ", "8     8", "8     8", " 88888 " },
    { " 99999 ", "9     9", "9     9", " 999999", "      9", "9     9", " 99999 " } };
  char[] cc = ("" + n).toCharArray();
  for (int i = 0; i < di[0].length; i++) {
    for (int j = 0; j < cc.length; j++) {
    System.out.print(di[cc[j] - '0'][i] + " "); // 填空位置
    }
    System.out.println();
  }
  }
  public static void main(String[] args) {
  f(2016);
  }
}



相关文章
|
4月前
第十四届蓝桥杯集训——JavaC组第十三篇——for循环
第十四届蓝桥杯集训——JavaC组第十三篇——for循环
54 0
|
4月前
|
算法
第十四届蓝桥杯集训——JavaC组第十二篇——while循环(循环四要素)
第十四届蓝桥杯集训——JavaC组第十二篇——while循环(循环四要素)
62 0
|
4月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-试题 基础练习 数列排序(四种语言对照)
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-试题 基础练习 数列排序(四种语言对照)
37 0
|
4月前
|
Java C语言
第十四届蓝桥杯集训——JavaC组第十四篇——嵌套循环
第十四届蓝桥杯集训——JavaC组第十四篇——嵌套循环
54 0
|
4月前
|
C语言
第十四届蓝桥杯集训——JavaC组第十一篇——switch
第十四届蓝桥杯集训——JavaC组第十一篇——switch
49 0
|
4月前
第十四届蓝桥杯集训——JavaC组第十篇——分支语句
第十四届蓝桥杯集训——JavaC组第十篇——分支语句
44 0
|
4月前
|
算法
第十四届蓝桥杯集训——JavaC组第九篇——三元运算符
第十四届蓝桥杯集训——JavaC组第九篇——三元运算符
47 0
|
4月前
第十四届蓝桥杯集训——JavaC组第九篇——位运算符
第十四届蓝桥杯集训——JavaC组第九篇——位运算符
42 0
|
4月前
第十四届蓝桥杯集训——JavaC组第八篇——进制转换
第十四届蓝桥杯集训——JavaC组第八篇——进制转换
56 0
|
4月前
|
Java 测试技术 C++
第十四届蓝桥杯集训——JavaC组——运算符练习题
第十四届蓝桥杯集训——JavaC组——运算符练习题
63 0