2014第五届蓝桥杯JAVA本科B组试题及答案 1. 武功秘籍小明到X山洞探险200010页和第1111页和第12页不在同一张纸上。
小明只想练习该书的第81页到第92撕80,8182,8384,8586,87888990,9192,932. 切面条2根面条。
如果先对折13根面条。
如果连续对折25根面条。
101025import java.util.Scanner;public class Main { public static void main(String []args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int num = (int)Math.pow(2, n)+ 1; System.out.println(num); //结果:2015 } }3. 猜字母把abcd...s共19个字母组成的序列重复拼接1062014的串。
接下来删除第1a35个等所有奇数位置的字母。
写出该字母。
qimport java.util.Scanner;/*** 该程序类似与约瑟夫环的问题*/public class Main {public static void main(String[] args) {Scanner s = new Scanner(System.in);String str = "abcdefghijklmnopqrs";String str1 = "";for(int i = 0;i < 106;i++){str1 = str1 + str;}System.out.println(str1.length());boolean[] arr = new boolean[str1.length()];for(int i=0; i<arr.length; i++) {arr[i] = true; //下标为TRUE时说明字母还在圈里 }int leftCount = str1.length();int countNum = 0;int index = 0;while(leftCount > 1) {if(arr[index] == true) { //当在圈里时if(countNum%2 == 0) { //下标为偶数时arr[index] = false; //该字母退出圈子leftCount --; //剩余字母数目减一} countNum++;}index ++; //if(index == str1.length()) { //nindex = 0; //将下标设为零重新开始。
countNum = 0;}}for(int i=0; i<str1.length(); i++) {if(arr[i] == true) {System.out.println(i); //输出结果表示下标为1023(第1024个)的字母,q }}} } 4. 大衍数列, 主要用于解释中国传统文化中的太极衍生原理。
0、2、4、8、12、18、24、32、40、50 ...21再除2。
以下的代码打印出了大衍数列的前 100 项。
for(int i=1; i<100; i++){if(i%2==0) //填空System.out.println(i*i/2);elseSystem.out.println((i*i-1)/2);} 请填写划线部分缺失的代码。
通过浏览器提交答案。
i%2 ==5. 圆周率中许多方法都涉及无穷级数。
图1.png下面的程序实现了该求解方法。
实际上数列的收敛对x的初始值并不敏感。
4double x = 111;for(int n = 10000; n>=0; n--){int i = 2 * n + 1;x = 2 + (i*i / x);}System.out.println(String.format("%.4f", ______________)); 4/(x-1)6. 奇怪的分式1/4 乘以 8/5 18/45见图1.png老师刚想1~94/1 乘以 5/82/2 乘以 3/3 !容。
public class Main {public static void main(String []args){int count = 0;for (int a = 1;a <= 9; a++){for (int b = 1;b <= 9; b++){if(a != b){for (int c = 1;c <= 9;c++){for (int d = 1;d <= 9;d++){if(c != d){double sum1 = (double)b/a * d/c;double sum2 = (double)(b*10 + d)/(a*10 + c);if(sum1 == sum2){count++;}}}}}}System.out.println(count); //输出结果:14}}}/** 这142/1*4/5 4/1*5/8 6/1*3/4 6/1*4/6 9/1*5/9 1/2*5/4 6/2*5/61/4*8/5 9/4*8/9 1/6*4/3 1/6*6/4 2/6*6/5 1/9*9/5 4/9*9/8PS:这些分式具有对称性 */ 7. 扑克序列 AA223344一共4对扑克牌。
请你把它们排成一行。
A中间有12之间有23之间有3 4之间有4张牌。
4A3A24322342A3A422AA3344 比 A2A233442342A3A4请通过浏览器提交答案。
“A”一定不要用小写字母a1”代替。
字符间一定不要留空格。
2342A3A4 public class 扑克序列 {//题目还给出了public static int count = 0;public static void main(String[] args) {char [] num = new char[8];f(num, 0);}public static void f(char[] num, int i) {if(i >= num.length){if(judge(num)){show(num);count++;}} else {for (int j = 1; j <= 4; j++) {num[i] = (char)(j+'0');f(num,i+1);}} }public static void show(char[] num) {for (int i = 0; i < num.length; i++) {if(num[i] == '1')System.out.print('A');elseSystem.out.print(num[i]);}System.out.println();}public static boolean judge(char[] num) {boolean[] bool = new boolean[5];int size_A = 0, size_2 = 0, size_3 = 0, size_4 = 0;for (int i = 0; i < num.length; i++) {if(num[i] == '1'){size_A++;if(i+2 < num.length && num[i] == num[i+2] || i - 2 > 0 && num[i-2] == num[i])bool[0] = true;}if(num[i] == '2'){size_2++;if(i+3 < num.length && num[i] == num[i+3] || i - 3 > 0 && num[i-3] == num[i])bool[1] = true;}if(num[i] == '3'){size_3++;if(i+4 < num.length && num[i] == num[i+4] || i - 4 > 0 && num[i-4] == num[i])bool[2] = true;}if(num[i] == '4'){size_4++;if(i+5 < num.length && num[i] == num[i+5] || i - 5 > 0 && num[i-5] == num[i])bool[3] = true;}}if(size_A == 2 && size_3 == 2 && size_2 == 2 && size_4 == 2){ bool[4] = true;}return bool[0] && bool[1] && bool[2] && bool[3] && bool[4];}} 8. 分糖果有n每个小朋友都把自己的糖果分一半给左手边的孩子。
1【格式要求】程序首先读入一个整数N(2<N<100)接着是一行用空格分开的N10002老师需要补发的糖果数。
32 2 44< 256MCPU消耗 < 1000ms...”的多余内容。
package语句。
不要使用jdk1.7及以上版本的特性。
Main答案: import java.util.Scanner; //求测试是否正确public class Main {public static void main(String args[]){Scanner sc=new Scanner(System.in);int n=sc.nextInt();int a=0,b=0,count=0,x=0;int s[]=new int [n];for(a=0;a<n;a++){s[a]=sc.nextInt();}sc.close();for(;;){for(a=0;a<n;a++){s[a]=s[a]/2;}b=s[0];//变化前的第一个小朋友手里的糖果的一半保留for(a=0;a<n-1;a++){s[a]=s[a]+s[a+1];}s[n-1]=s[n-1]+b;//将第一个小朋友的糖果给最后一个小朋友 for(a=0,x=0;a<n;a++){if(s[a]%2!=0){s[a]=s[a]+1;count++;}else {x++;}}for(a=0;a<n-1;a++){if(s[a]!=s[a+1]){x=0;}}if(x==n){System.out.println(count);break;}}}} 9. 地宫取宝 X 国王有一个地宫宝库。