2015年蓝桥杯省赛JavaB组校内选拔整理

时间:2022-09-09 21:25:38

1.



java中提供了对正则表达式的支持。
有的时候,恰当地使用正则,可以让我们的工作事半功倍!


如下代码用来检验一个四则运算式中数据项的数目,请填写划线部分缺少的代码。


注意:只填写缺少代码,不要写任何多余内容,例如,已有的双引号。




public class A
{
public static int f(String s)
{
return s.split("________________").length;
}

public static void main(String[] args)
{
System.out.println(f("12+35*5-2*18/9-3")); //7
System.out.println(f("354*12+3-14/7*6")); //6
}

}

答案:[^0-9]

2.



1/1 + 1/2 + 1/3 + 1/4 + ... 在数学上称为调和级数。


它是发散的,也就是说,只要加上足够多的项,就可以得到任意大的数字。


但是,它发散的很慢:


前1项和达到 1.0
前4项和才超过 2.0
前83项的和才超过 5.0

那么,请你计算一下,要加多少项,才能使得和达到或超过 15.0 呢?


请填写这个整数。


注意:只需要填写一个整数,不要填写任何多余的内容。比如说明文字。


答案:1835421

3.



如果x的x次幂结果为10(参见【图1.png】),你能计算出x的近似值吗?


显然,这个值是介于2和3之间的一个数字。


请把x的值计算到小数后6位(四舍五入),并填写这个小数值。


注意:只填写一个小数,不要写任何多余的符号或说明。

2.506184

public class Test3 {


public static void main(String[] args) {
float sum=0;
for ( double i=2.500000; i < 2.550000; i=i+0.000001) {
Double d=Math.pow(i, i);
Double ddDouble=Math.abs(d-10.000000);
if(ddDouble<0.001)
System.out.println(i+" "+ddDouble);
}
System.out.println(sum);
}


}

根据打印的结果进行比较

答案:2.506184

4.

今有7对数字:两个1,两个2,两个3,...两个7,把它们排成一行。
要求,两个1间有1个其它数字,两个2间有2个其它数字,以此类推,两个7之间有7个其它数字。如下就是一个符合要求的排列:


17126425374635


当然,如果把它倒过来,也是符合要求的。


请你找出另一种符合要求的排列法,并且这个排列法是以74开头的。


注意:只填写这个14位的整数,不能填写任何多余的内容,比如说明注释等。

public class Test4 {	   static int[] a = new int[] { 0, 7, 4, 0, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0 };	    public static void main(String[] args) {	        getResult(1);//从数字1开始	    }	    /**	     * 	     * @param index	     *             数1-7	     */	    public static void getResult(int index) {	        if (index == 4) {//跳过数字4	            index++;	        }	        if (index >= 7) {//此时说明1-7数字都被取完,输出答案即可	            for (int i = 1; i < a.length; i++) {	                System.out.print(a[i]);	            }	        }	        //i--->位数	        for (int i = 3; i < 14; i++) {	            if ((i + index + 1) <= 14 && a[i] == 0 && a[i + index + 1] == 0) {	                a[i] = a[i + index + 1] = index;	                getResult(index + 1);	                //------------------------------	                //执行到这一步说明此时的数字index不适合于位置i,撤回赋值	                a[i] = a[i + index + 1] = 0;	            }	        }	    }	}
答案:74151643752362


5.

 
  勾股定理,西方称为毕达哥拉斯定理,它所对应的三角形现在称为:直角三角形。


  已知直角三角形的斜边是某个整数,并且要求另外两条边也必须是整数。


  求满足这个条件的不同直角三角形的个数。


【数据格式】
输入一个整数 n (0<n<10000000) 表示直角三角形斜边的长度。
要求输出一个整数,表示满足条件的直角三角形个数。


例如,输入:
5
程序应该输出:
1


再例如,输入:
100
程序应该输出:
2


再例如,输入:
3
程序应该输出:
0




资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗  < 1000ms




请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。


所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。

注意:主类的名字必须是:Main,否则按无效代码处理。

 1 import java.util.Scanner; 2  3 public class Main { 4     public static long n; 5     public static int result; 6      7     public void getResult() { 8         for(long i = 1;i < n;i++) { 9             for(long j = n - i + 1;j < n;j++) {10                 long temp = i * i + j * j;11                 if(temp == n * n && j >= i)12                     result++;13             }14         }15         System.out.println(result);16     }17     18     public static void main(String[] args) {19         Main test = new Main();20         Scanner in = new Scanner(System.in);21         n = in.nextLong();22         test.getResult();23     }24           25 }

6.



你一定听说过“数独”游戏。
如【图1.png】,玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个同色九宫内的数字均含1-9,不重复。


数独的答案都是唯一的,所以,多个解也称为无解。


本图的数字据说是芬兰数学家花了3个月的时间设计出来的较难的题目。但对会使用计算机编程的你来说,恐怕易如反掌了。


本题的要求就是输入数独题目,程序输出数独的唯一解。我们保证所有已知数据的格式都是合法的,并且题目有唯一的解。


格式要求,输入9行,每行9个字符,0代表未知,其它数字为已知。
输出9行,每行9个数字表示数独的解。


例如:
输入(即图中题目):
005300000
800000020
070010500
400005300
010070006
003200080
060500009
004000030
000009700


程序应该输出:
145327698
839654127
672918543
496185372
218473956
753296481
367542819
984761235
521839764


再例如,输入:
800000000
003600000
070090200
050007000
000045700
000100030
001000068
008500010
090000400


程序应该输出:
812753649
943682175
675491283
154237896
369845721
287169534
521974368
438526917
796318452




资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗  < 2000ms




请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。


所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。

注意:主类的名字必须是:Main,否则按无效代码处理。