2014第五届蓝桥杯JAVA本科B组试题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2014第五届蓝桥杯JAVA本科B组试题及答案 1. 武功秘籍小明到X山洞探险
2000
10页和第1111页和第12页不在同一张纸上。
小明只想练习该书的第81页到第92
撕
80,81
82,8384,8586,87888990,9192,93
2. 切面条2根面条。
如果先对折13根面条。
如果连续对折25根面条。
10
1025
import 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个等所有奇数位置的
字母。
写
出该字母。
q
import 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[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()) { //n index = 0; //将下标设为零重新开始。 countNum = 0; } } for(int i=0; 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); else System.out.println((i*i-1)/2);} 请填写划线部分缺失的代码。通过浏览器提交答案。 。i%2 == 5. 圆周率 中许多方法都涉及 无穷级数。 图1.png 下面的程序实现了该求解方法。实际上数列的收敛对x的初始值并不敏感。 4 double 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~9 4/1 乘以 5/8 2/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++; } } }