题目地址:https://wenku.baidu.com/view/326f7b4be518964bcf847c96.html?rec_flag=default    => 百度文档

题目及解析如下:

题目大致介绍:

第一题到第四题是结果填空,方法不限只要得到最后结果就行

第五题到第七题是代码填空,要求在指定的位置处填代码

第八题到第十题是编程题,要求编程解决问题

第一题

第一题很简单,就是个签到题,详情如下:

 // 黄金分割数

 public class t1 {

     public static void main(String[] args) {

         int a = 1;
int b = 3; for(int i=0; i<=50; i++) {
int temp = a + b;
double s = (double)b/temp;
System.out.println(b + " " + temp + " " + s);
a = b;
b = temp;
} } // answer: 5778 9349 0.6180340143330838
// 最后提交的答案: 5778 9349
// 注: 为了求稳 算出答案后可以用电脑中带的计算器验算一下 }

第二题

思路:每次都是所有人平分一瓶酒,然后船长喝了四次,并且正好喝了一瓶

 // 海盗比酒量

 public class t2 {

     public static void main(String[] args) {

         for (int m = 1; m <= 20; m++) {
for (int n = 1; n < m; n++) {
for (int p = 1; p < n; p++) {
for (int q = 1; q < p; q++) {
if (n * p * q + m * p * q + m * n * q + m * n * p == m * n * p * q) {
System.out.println(m + "," + n + "," + p + "," + q + "," + 0);
}
}
}
}
} } }

第三题

1个圆盘移动1次,2个圆盘移动3次,3个圆盘移动7次,n个圆盘就是移动2^n-1次,64个圆盘就是移动2^64-1次

写代码计算如下:

 import java.math.BigInteger;

 public class t3 {

     public static void f(int n) {
BigInteger a = new BigInteger("1");
for (int i = 1; i <= n; i++) {
a = a.multiply(new BigInteger("2"));
} a = a.subtract(new BigInteger("1"));
System.out.println(a.toString());
} public static void f2(int n) {
//
long a = 1;
for (int i = 1; i <= n; i++) {
a = a * 2;
} System.out.println(a - 1);
} public static void main(String[] args) { f(1); // 1
f(2); //
f(3); // f(64); // f2(63); // 将这个答案*2+1就是最后的答案(也就是f(64))
f2(64); // 爆了、、、
} }

第四题

比较简单的递归,代码如下:

 public class t4 {

     public static void f(int score, int n, String str) {
if (n == 10 && score == 100) {
System.out.println(str);
return;
}
if (n == 10) {
return;
} f(score * 2, n + 1, str + "1"); // 答对
f(score - (n + 1), n + 1, str + "0"); // 答错 } public static void main(String[] args) { f(10, 0, ""); // answer:
// 1011010000
// 0111010000
// } }

第五题

常规题,代码如下:

 public class t5 {

     public static int getFirstNum(String s) {
if(s == null || s.length() == 0) {
return -1;
}
char c = s.charAt(0);
if(c>='0' && c<='9') {
return c - '0';
}
return getFirstNum(s.substring(1));
} public static void main(String[] args) { System.out.println(getFirstNum("abc24us43"));
System.out.println(getFirstNum("82445adb5"));
System.out.println(getFirstNum("ab")); } }

第六题

常规数学问题,代码如下:

 public class t6 {

     public static void main(String[] args)
{
System.out.println("标准 " + Math.PI); double a = 1;
int n = 6; for(int i=0; i<10; i++){ // 可以把n改成100 看更多的结果
double b = Math.sqrt(1-(a/2)*(a/2));
a = Math.sqrt((1-b)*(1-b) + (a/2)*(a/2)); n = 2 * n; //填空 System.out.println(n + "  " + a*n/2); // 填空
}
} }

第七题

常规递归,不断尝试,从而写出如下代码:

 import java.util.*;

 public class t7 {

     public static List<Integer> max5(List<Integer> lst)
{
if(lst.size()<=5) return lst; int a = lst.remove(0); // 填空
List<Integer> b = max5(lst); for(int i=0; i<b.size(); i++){
int t = b.get(i);
if(a>t){
lst.set(i, a); // 填空
a = t;
}
} return b;
} public static void main(String[] args)
{
List<Integer> lst = new Vector<Integer>();
lst.addAll(Arrays.asList(12,127,85,66,27,34,15,344,156,344,29,47));
System.out.println(max5(lst)); } }

第八题

看不懂,懒得做

第九题

用暴力法解决如下:

 public class t9 {

     public static void main(String[] args) {

         char[] a = {' ', '+', '-'};
char[] num = {'1', '2', '3', '4', '5', '6', '7', '8', '9'};
for(char x1: a)
for(char x2: a)
for(char x3: a)
for(char x4: a)
for(char x5: a)
for(char x6: a)
for(char x7: a)
for(char x8: a) {
int res = 0;
char[] s = {x1, x2, x3, x4, x5, x6, x7, x8};
String str = "";
for(int i=0; i<=7; i++) {
str = str + num[i] + s[i];
}
str = str + num[8];
str = str.replaceAll(" ", "");
String[] subStrs = str.split("-");
int[] addResults = new int[subStrs.length]; // 把第一个减号之前的都加起来
String startStr = subStrs[0];
String[] startStrs = startStr.split("[+]");
for(int i=0; i<startStrs.length; i++) {
res += Integer.parseInt(startStrs[i]);
} // 第一个减号之后的
for(int i=1; i<subStrs.length; i++) {
String[] strs = subStrs[i].split("[+]");
// -
res -= Integer.parseInt(strs[0]);
for(int j=1; j<strs.length; j++) {
// +
res += Integer.parseInt(strs[j]);
}
}
if(res==110) {
System.out.println(str);
}
} } }

第十题

2012年第三届蓝桥杯Java本科组省赛试题解析的更多相关文章

  1. 第三届蓝桥杯Java高职组决赛第三题

    题目描述: 某少年宫引进了一批机器人小车.可以接受预先输入的指令,按指令行动.小车的基本动作很简单,只有3种:左转(记为L),右转(记为R),向前走若干厘米(直接记数字). 例如,我们可以对小车输入如 ...

  2. 第三届蓝桥杯Java高职组决赛第一题

    题目描述: 看这个算式: ☆☆☆ + ☆☆☆ = ☆☆☆ 如果每个五角星代表 1 ~ 9 的不同的数字. 这个算式有多少种可能的正确填写方法? 173 + 286 = 459 295 + 173 = ...

  3. 第三届蓝桥杯C++B组省赛

    1.微生物增值 2.古堡算式 3.海盗比酒量 4.奇怪的比赛 5.方阵旋转 6.大数乘法 7.放棋子 8.密码发生器 9.夺冠概率 10.取球博弈

  4. 2012年第三届蓝桥杯C/C++程序设计本科B组省赛 取球博弈

    2012年第三届蓝桥杯C/C++程序设计本科B组省赛 取球博弈 题目描述 **取球博弈 今盒子里有n个小球,A.B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并 ...

  5. 第八届蓝桥杯java b组第六题

    标题:最大公共子串 最大公共子串长度问题就是:求两个串的所有子串中能够匹配上的最大长度是多少. 比如:"abcdkkk" 和 "baabcdadabc",可以找 ...

  6. 2012年第三届蓝桥杯C/C++程序设计本科B组决赛

    1.星期几(取余/excel) 2.数据压缩 3.拼音字母(比较) 4.DNA比对(dp) 5.方块填数 1.星期几[结果填空] (满分5分)    1949年的国庆节(10月1日)是星期六.     ...

  7. 2012年第三届蓝桥杯C/C++程序设计本科B组省赛 方阵旋转(代码填空)

    方阵旋转 对一个方阵转置,就是把原来的行号变列号,原来的列号变行号 例如,如下的方阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 转置后变为: 1 5 9 13 2 ...

  8. 2012年第三届蓝桥杯C/C++程序设计本科B组省赛题目 海盗比酒量 结果填空

    ** 一.题目 ** 海盗比酒量 有一群海盗(不多于20人),在船上比拼酒量.过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了.再打开一瓶酒平分,又有倒下的,再次重复- 直到开了第4瓶酒,坐 ...

  9. 2012年第三届蓝桥杯C/C++程序设计本科B组省赛 密码发生器

    密码发生器 题目描述: ```bash 在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解,不安全:如果设置不好记的密码,又担心自己也会忘记:如果写在纸上, ...

随机推荐

  1. R语言入门

    引入R的package(库) 首先是要安装TSA库,TSA是作者自己开发的一套基于R的pacakge,里面包含了函数以及数据:安装的方式是在R的控制台(console)中敲入install.packa ...

  2. C编程技巧资源

    Keil C 位变量外部引用的方法 https://blog.csdn.net/zh458042230/article/details/8627604 单片机Keil C51 C语言多文件如何使用全局 ...

  3. java中length与length()

    length是对数组而言的,指的是数组的长度. length()是对字符串而言的,指的是字符串所包含的字符个数. public class LengthDemo { public static voi ...

  4. 文件上传失败 -nginx报错 client intended to send too large body: 1331696 bytes

    location / { root /data/fastdfs/data; include gzip.conf; ngx_fastdfs_module; client_max_body_size 10 ...

  5. 【python】多线程详解

    一.进程与线程关系 一个进程至少包含一个线程. 二.线程基础 1.线程的状态 线程有5种状态,状态转换的过程如下图所示: 2.线程同步(锁) 多线程的优势在于可以同时运行多个任务(至少感觉起来是这样) ...

  6. NDK学习笔记(二)

    花了点时间把pixeliop的部分看完了,拿到开发文档提供的案例稍事修改,把画面左半边压暗. 这个案例重点在于理清pixel_engine()函数中的坐标与scanline的关系. y代表当前正在调用 ...

  7. 自定义Write节点的afterrender属性

    由于nuke中的write节点提供了beforerender,afterrender这类事件,我们想添加一些功能只需要在这里面敲入代码即可.事件一旦发生,自然会触发我们敲入的co de.   Nuke ...

  8. Tribon/AM 数据库名字的含义

    收集在这里备用 数据库名 Tribon环境变量 内容描述 船体型线数据库 SB_CGDB 船体外型信息 型表面,船体曲线,板缝 船体结构数据库 SB_OGDB 船体模型信息 板材数据库 SB_PLDB ...

  9. Android keystore相关

    一.生成keystorekeytool -genkey -alias test.keystore -keyalg RSA -validity -keystore test.keystore 二.查看 ...

  10. [转]Win 10 的 Win 按键没反应

    来自:http://www.pc0359.cn/article/win10/66397.html 方法步骤: 1.首先我们需要将任务管理器运行出来.方法有两种,第一种:使用鼠标右键单击屏幕下方的任务栏 ...