第三届蓝桥杯软件大赛java本科组预赛完整答案(完整) 本答案仅供参考,如有不同意见属正常。
希望本文对您的学习有帮助!谢谢参阅!结果填空题1.public class first {private static double result;public static void main(String[] args) {int i[] = new int[100];i[0] = 1;i[1] = 3;String string2 = "";for(int j = 2;j < 30;j++){i[j] = i[j-1] + i[j-2];result = (double)i[j-1]/i[j];string2 = new Double(result).toString();System.out.print(i[j-1]+"/"+i[j]+" ");System.out.println(string2);}}}2.public class two {public static void main(String[] args) {// TODO Auto-generated method stubint a,b,c;int d = 20;b = 1;c = 1;double sum = 0;while(d>4){for(a = 1;a <= d;a++){b = a+1;while(b<d-1){c = b+1;while(c <= d-1){sum = 1.0/d+1.0/a +1.0/b +1.0/c;//System.out.println(sum);if(sum == 1)System.out.println(d+" "+a+" "+b+" "+c);// System.out.print("\n");c++;}b++;}}d--;}}}3.public class three {public static void main(String[] args){double a[] = new double[65];a[0] = 1;a[1] = 1;a[2] = 3;a[3] = 7;for(int i = 4;i <= 64 ; i++)a[i] = a[i-1]*2 + 1;System.out.println("结果为:"+a[64]);}}4.public class four {static int score = 10;public static void main(String[] args) {int a[] = {0,1}; //对或错1、0int i = 0;for(int x1:a)for(int x2:a)for(int x3:a)for(int x4:a)for(int x5:a)for(int x6:a)for(int x7:a)for(int x8:a)for(int x9:a)for(int x10:a) { int result[] = {x1,x2,x3,x4,x5,x6,x7,x8,x9,x10};for(int z=0;z<=9;z++){if(result[z]==1)score = right(z+1);elsescore = wrong(z+1);}if(score == 100){for(int q = 0;q<=9;q++){System.out.print(result[q]);}System.out.println();} i++;}}static int right(int num){if(num == 1)score = 10;score = score*2;return score;}static int wrong(int num){if(num == 1)score = 10;score = score - num;return score;}}代码填空题:1.import java.util.Scanner;public class B21 {public static void main(String[] args) {// TODO Auto-generated method stubScanner reader = new Scanner(System.in);String string = reader.nextLine();System.out.println(getFirstNum(string));}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 Integer.parseInt(String.valueOf(c)); //填空return getFirstNum(s.substring(1)); //填空}}2.public class B22 {public static void main(String[] args){System.out.println("标准 " + Math.PI);double a = 1;int n = 6;for(int i=0; i<10; i++){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); // 填空}}}3.import java.util.*;public class B23{public static List<Integer> max5(List<Integer> lst){if(lst.size()<=5) return lst;int a = lst.remove(lst.size() - 1); // 填空//System.out.println(a);List<Integer> b = max5(lst);//List<Integer> b = lst;for(int i=0; i<b.size(); i++){int t = b.get(i);if(a>t){b.set(i, a); // 填空// b.remove(i);// b.add(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));}}程序题:1.import java.util.Scanner;public class C1 {public static void main(String[] args) {// TODO Auto-generated method stubScanner reader = new Scanner(System.in);String s1 = reader.nextLine();String s2 = reader.nextLine();int x[] = getX(s1, s2);int y[] = getY(s1, s2);int a[] = x;int b[] = y;union(a, b);System.out.println(minX(x)+","+minX(y)+","+(maxX(x)-minX(x))+","+(maxX(y)-minX(y)));}static void union(int x[],int y[]){int a[]= new int[4];int b[] = new int[4];for(int i = 0;i<4;i++){a[i] = x[i];}int uX = secondMin(a);boolean xb = (uX<=Math.max(x[0],x[1])&&uX>=Math.min(x[1],x[0]))&&(uX<=Math.max(x[2],x[3])&&uX>=Math.min(x[2],x[3]));for(int i = 0;i<4;i++){b[i] = y[i];}int uY = secondMin(b);boolean yb = (uY<=Math.max(y[0],y[1])&&uY>=Math.min(y[1],y[0]))&&(uY<=Math.max(y[2],y[3])&&uY>=Math.min(y[2],y[3]));if(xb&&yb&&((a[1]-a[2])!=0&&(b[1]-b[2])!=0)){System.out.println(uX+","+uY+","+(a[1]-a[2])+","+(b[1]-b[2]));}else {System.out.println("不存在");}}static int[] getX(String s1,String s2) {String ss1[] = s1.split(",");String ss2[] = s2.split(",");int xy[] = new int[4];xy[0] = Integer.parseInt(ss1[0]);xy[1] = Integer.parseInt(ss1[2]);xy[2] = Integer.parseInt(ss2[0]);xy[3] = Integer.parseInt(ss2[2]);return xy;}static int[] getY(String s1,String s2) {String ss1[] = s1.split(",");String ss2[] = s2.split(",");int xy[] = new int[4];xy[0] = Integer.parseInt(ss1[1]);xy[1] = Integer.parseInt(ss1[3]);xy[2] = Integer.parseInt(ss2[1]);xy[3] = Integer.parseInt(ss2[3]);return xy;}static int maxX(int x[]){int temp;for(int i = 0;i <= 2;i++){if(x[i]>x[i+1]){temp = x[i];x[i] = x[i+1];x[i+1] = temp;}}return x[3];}static int minX(int x[]){int temp;for(int i = 0;i <= 2;i++){if(x[i]<x[i+1]){temp = x[i];x[i] = x[i+1];x[i+1] = temp;}}return x[3];}static int secondMin(int x[]){int temp;for(int i = 0;i<3;i++)for(int j = 0;j<x.length-i-1;j++){if(x[j]<x[j+1]){temp = x[j];x[j] = x[j+1];x[j+1] = temp;}}return x[2];}}2.public class C2 {public static void main(String[] args) {// TODO Auto-generated method stub//String string = "123+4+5+67-89";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 result = 0;char s[] = {x1,x2,x3,x4,x5,x6,x7,x8};String string = "";for(int i = 0;i<= 7;i++){string = string+num[i]+s[i];}string = string+num[8];string= string.replaceAll(" ","");String jianString[] = string.split("-");int addResult[] = new int[jianString.length];addResult[0] = 0;String addString[] = jianString[0].split("[+]");for(int j = 0;j<addString.length;j++){addResult[0] +=Integer.parseInt(String.valueOf(addString[j]));}result = addResult[0];for(int i = 1;i<jianString.length;i++){String num1[] = jianString[i].split("[+]");result = result -Integer.parseInt(String.valueOf(num1[0]));for(int p = 1;p<num1.length;p++)result += Integer.parseInt(String.valueOf(num1[p]));}if(result == 110)System.out.println(string)}}}3.import java.util.Scanner;public class C33 {public static void main(String[] args){int num[] = getNum();int d = gcd(num[1], num[2]);//中瓶和小瓶容量的最大公约数if(num[0]/2 <= num[1] + num[2] && (num[0]/2)%d == 0){System.out.println(num[3] + " " + num[4] + " " + num[5]);fenjiu(num[3], num[4], num[5],num);}else{System.out.println("不可能");}}static int[] getNum(){Scanner readerScanner = new Scanner(System.in);String string[] = readerScanner.nextLine().split(",");int i = 0;int num[] = new int[7];while(i < 7){num[i] = Integer.parseInt(string[i]);i++;}return num;}static void fenjiu(int num1,int num2,int num3,int num[]){//C2*X - C3*Y = 1int b1 = num[1],c1 = num[2];int a = num1,b = num2,c = num3,result = num[6];if(b == result||c == result||a == result)System.out.print("");else {//12,8,5,12,0,0,6// 1. 大瓶子只能倒入中瓶子// 2. 中瓶子只能倒入小瓶子// 3. 小瓶子只能倒入大瓶子// 4. 小瓶子只有在已经装满的情况下才能倒入大瓶// 5. 若小瓶子被倒空,则无论中瓶子是否满,应马上从中瓶子倒入小瓶子if(c == c1){// 4. 小瓶子只有在已经装满的情况下才能倒入大瓶子a = a + c;c = 0;System.out.println(a + " " + b + " " + c);fenjiu(a, b, c, num);}else {if(c == 0 && b > 0){// 5. 若小瓶子被倒空,则无论中瓶子是否满,应马上从中瓶子倒入小瓶子if(b > c1){c = c1;b = b - c1;System.out.println(a + " " + b + " " + c);fenjiu(a, b, c, num);}else {c = b;b = 0;System.out.println(a + " " + b + " " + c);fenjiu(a, b, c, num);}}else {if(b != b1){a = a - b1 + b;b = b1;System.out.println(a + " " + b + " " + c);fenjiu(a, b, c, num);}else {b = b - c1 + c;c = c1;System.out.println(a + " " + b + " " + c);fenjiu(a, b, c, num);}}}}}public static int gcd(int m, int n){int a = n, b = m;while (true){if ((a = a % b) == 0)return b;if ((b = b % a) == 0)return a;}}}本答案仅供参考,如有不同意见属正常。