蓝桥杯java历年真题及答案整理(共129道题目及答案)(2)

2018-12-23 23:59

while(m.find()){

String num = new String(m.group());

String num2 = num;

num2 = \ // 数字前添加\ ss[i] = ss[i].replace(num, num2);

if(ss[i].startsWith(\ // 去头\ ss[i] = ss[i].substring(1);

}

if(ss[i].endsWith(\ // 去尾\ ss[i] = ss[i].substring(0,ss[i].length()-1); } } }

print(ss); } }

运行结果:

you and me what cpp2005program You And Me What Cpp_2005_program

3.猜算式

看下面的算式:

□□ x □□ = □□ x □□□

它表示:两个两位数相乘等于一个两位数乘以一个三位数。 如果没有限定条件,这样的例子很多。

但目前的限定是:这9个方块,表示1~9的9个数字,不包含0。 该算式中1至9的每个数字出现且只出现一次! 比如:

46 x 79 = 23 x 158 54 x 69 = 27 x 138 54 x 93 = 27 x 186 .....

请编程,输出所有可能的情况! 注意:

左边的两个乘数交换算同一方案,不要重复输出! 不同方案的输出顺序不重要

package Question1_9;

import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.Vector;

public class Question3 {

public static long count=0;

6

public static List> filteredNonRedundantResults; private static boolean isfilter(Vector result) {

int a=(result.elementAt(0)-'0')*10+(result.elementAt(1)-'0'); int b=(result.elementAt(2)-'0')*10+(result.elementAt(3)-'0'); int c=(result.elementAt(4)-'0')*10+(result.elementAt(5)-'0'); int

d=(result.elementAt(6)-'0')*100+(result.elementAt(7)-'0')*10+(result.elementAt(8)-'0');

if(a*b==c*d){

}

return true;

return false; }

public static void print(Vectorvector) {

System.out.printf(\

x

%c%c

=

%c%c

x %c%c%c\tAt(3),vector.elementAt(4),vector.elementAt(5),vector.elementAt(6),vector.elementAt(7),vector.elementAt(8)); }

private static void fullPermutation(Vectorsourse, Vector

if(sourse.size()==0&&isfilter(result)){

boolean exit=false;

for (int i = 0; i < filteredNonRedundantResults.size(); i++) {

int ra=(result.elementAt(0)-'0')*10+(result.elementAt(1)-'0'); int rb=(result.elementAt(2)-'0')*10+(result.elementAt(3)-'0'); int

result) {

fa=(filteredNonRedundantResults.get(i).elementAt(0)-'0')*10+(filteredNonRedundantResults.get(i).elementAt(1)-'0');

int

fb=(filteredNonRedundantResults.get(i).elementAt(2)-'0')*10+(filteredNonRedundantResults.get(i).elementAt(3)-'0'); if(ra==fb&&rb==fa){ exit=true;

break; }

}

if(exit==false){

filteredNonRedundantResults.add(new Vector(result)); }

return; }

for (int i = 0; i < sourse.size(); i++) { result.add(sourse.elementAt(i)); sourse.remove(i);

fullPermutation(sourse, result);

sourse.add(i, result.elementAt(result.size()-1));

7

result.remove(result.size()-1); }

}

public static void main(String[] args) {

Scanner scanner=new Scanner(System.in); int n=9;

Vector sourse=new Vector(); Vector result=new Vector(); for (int i = 1; i <= n; i++) { }

Question3.filteredNonRedundantResults=new ArrayList>(); Question3.fullPermutation(sourse, result);

for (int i = 0; i < Question3.filteredNonRedundantResults.size(); i++) {

Question3.print(Question3.filteredNonRedundantResults.get(i)); System.out.println(); sourse.add((char)('0'+i));

} } }

运行结果: 46 x 79 = 23 x 158 54 x 69 = 27 x 138 54 x 93 = 27 x 186 58 x 67 = 29 x 134 58 x 69 = 23 x 174 58 x 73 = 29 x 146 58 x 96 = 32 x 174 63 x 74 = 18 x 259 64 x 79 = 32 x 158 73 x 96 = 12 x 584 76 x 98 = 14 x 532

方法二:

import java.util.List;

import java.util.ArrayList;

public class Demo01 {

static List lis = new ArrayList(); // 结果1(有重复的结果) static List lis2 = new ArrayList(); // 结果2(去重复后的结果) // 初始化数组为1~9 public static void init(int[] n) { for(int i=0;i<9;i++){

n[i] = i+1; // 初始化数组为1~9 } }

// 是否重复

public static boolean isDup(String s1,String s2){

8

String a1 = s1.substring(0,2); String a2 = s1.substring(2,4); String b1 = s2.substring(0,2); String b2 = s2.substring(2,4); if(a1.equals(b2)&&a2.equals(b1)){ return true; }else{

return false; } }

// 去除lis重复元素

public static void removeDuplicate(){ lis2.add(lis.get(0));

for(int i=1;i

boolean flag = true; // 标记是否重复 for(int j=0;j

flag = isDup(lis.get(i),lis2.get(j)); // 判断是否重复

if(flag) break; // 如果元素重复,直接跳出这层循环,测试下个数据 } if(!flag){

lis2.add(lis.get(i)); // 不重复,则添加 } } } // 输出

public static void print(){ for(String s:lis2){

String a = s.substring(0,2); String b = s.substring(2,4); String c = s.substring(4,6); String d = s.substring(6);

System.out.println(a+\ } }

// 检测结果,符合条件的输出 public static void check(int[] n){

StringBuffer sb = new StringBuffer();

for(int x:n){ // 数字数组转为字符串 sb.append(x); }

int a = Integer.parseInt(sb.substring(0,2).toString()); int b = Integer.parseInt(sb.substring(2,4).toString()); int c = Integer.parseInt(sb.substring(4,6).toString()); int d = Integer.parseInt(sb.substring(6).toString()); if(a*b==c*d){

lis.add(sb.toString()); // 添加结果 }

9

}

// 全排列进行测试

public static void allSort(int[] n,int start,int end){ if(start>=end){

check(n); // 检测结果,符合条件的输出 return ; }else{

for(int i=start;i<=end;i++){

int t = n[start]; // 交换元素 n[start] = n[i]; n[i] = t;

// 递归全排列

allSort(n,start+1,end);

t = n[start]; // 还原元素 n[start] = n[i]; n[i] = t; } } }

public static void fun(){ int[] n = new int[9];

init(n); // 初始化数组为1~9 allSort(n,0,n.length-1); // 全排列测试 removeDuplicate(); // 去除重复元素 }

public static void main(String[] args){ fun(); //

print(); // 输出结果 } }

运行结果:

46 x 79 = 23 x 158 54 x 69 = 27 x 138 54 x 93 = 27 x 186 58 x 67 = 29 x 134 58 x 69 = 23 x 174 58 x 73 = 29 x 146 58 x 96 = 32 x 174

63 x 74 = 18 x 259 64 x 79 = 32 x 158 73 x 96 = 12 x 584 76 x 98 = 14 x 532

4.Excel地址转换

10


蓝桥杯java历年真题及答案整理(共129道题目及答案)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《素质教育专题》第04章在线测试

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: