




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 蓝桥杯蓝桥杯 java 历年真题及答案整理历年真题及答案整理(闭关一个月闭关一个月,呕心沥血整理出来的呕心沥血整理出来的) 1. 算法是这样的,如果给定 N 个不同字符,将这 N 个字符全排列,最终的结果将会是 N!种。如:给定 A、B、C 三个不同的字符,则结果为:ABC、ACB、BAC、BCA、CAB、CBA 一共 3!=3*2=6 种情况。 package Question1_9; import java.util.Scanner; import java.util.Vector; public class Question1 public static long count=0; private void fullPermutation(Vectorsourse, Vector result) if(sourse.size()=0) for (int i = 0; i result.size(); i+) System.out.print(result.elementAt(i); System.out.print(n); count+; return; for (int i = 0; i sourse.size(); i+) Vectortsourse=new Vector(sourse); Vectortresult=new Vector(result); tresult.add(sourse.elementAt(i); tsourse.remove(i); new Question1().fullPermutation(tsourse, tresult); public static void main(String args) Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); Vector sourse=new Vector(); Vector result=new Vector(); for (int i = 0; i n; i+) sourse.add(char)(A+i); 2 new Question1().fullPermutation(sourse, result); System.out.println(Question1.count); 2. 串的简单处理 串的处理 在实际的开发工作中,对字符串的处理是最常见的编程任务。 本题目即是要求程序对用户输入的串进行处理。具体规则如下: 1. 把每个单词的首字母变为大写。 2. 把数字与字母之间用下划线字符(_)分开,使得更清晰 3. 把单词中间有多个空格的调整为1个空格。 例如: 用户输入: you and me what cpp2005program 则程序输出: You And Me What Cpp_2005_program 用户输入: this is a 99cat 则程序输出: This Is A 99_cat 我们假设:用户输入的串中只有小写字母,空格和数字,不含其它的字母或符号。 每个单词间由1个或多个空格分隔。 假设用户输入的串长度不超过200个字符。 package Question1_9; import java.util.Scanner; import java.util.Vector; public class Question2 public static void main(String args) Scanner scanner=new Scanner(System.in); String string=scanner.nextLine(); 3 Vectorvector=new Vector(); for (int i = 0; i string.length(); i+) vector.add(string.charAt(i); try int index=0; while (index=a index+; index+; for (int i = 0; i vector.size(); i+) System.out.print(vector.elementAt(i); System.out.println(); catch (ArrayIndexOutOfBoundsException e) / TODO: handle exception 4 运行结果: you and me what cpp2005program You And Me What Cpp_2005_program 3. 猜算式 看下面的算式: x = x 它表示:两个两位数相乘等于一个两位数乘以一个三位数。 如果没有限定条件,这样的例子很多。 但目前的限定是:这9个方块,表示19的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; 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; 5 public static void print(Vectorvector) System.out.printf(%c%c x %c%c = %c%c x %c%c%c,vector.elementAt(0),vector.elementAt(1),vector.elementAt(2),vector.elemen tAt(3),vector.elementAt(4),vector.elementAt(5),vector.elementAt(6),vector.elementAt (7),vector.elementAt(8); private static void fullPermutation(Vectorsourse, Vector result) if(sourse.size()=0 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 fa=(filteredNonRedundantResults.get(i).elementAt(0)-0)*10+(filteredNonRedundantRe sults.get(i).elementAt(1)-0); int fb=(filteredNonRedundantResults.get(i).elementAt(2)-0)*10+(filteredNonRedundantRe sults.get(i).elementAt(3)-0); if(ra=fb 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); result.remove(result.size()-1); public static void main(String args) Scanner scanner=new Scanner(System.in); int n=9; 6 Vector sourse=new Vector(); Vector result=new Vector(); for (int i = 1; i = n; i+) sourse.add(char)(0+i); Question3.filteredNonRedundantResults=new ArrayList(); Question3.fullPermutation(sourse, result); for (int i = 0; i 0) if(lieshu%26=0) stack.push(Z); lieshu=lieshu/26-1; else stack.push(char)(A-1+lieshu%26); lieshu=lieshu/26; while (!stack.empty() System.out.print(stack.pop(); System.out.println(hangshu); n-; 8 运行结果: 输入一个整数 n(n100) 2 R12C4 R5C255 D12 IU5 5. 手机尾号 /* 30 年的改革开放,给中国带来了翻天覆地的变化。2011 全年中国手机产量约为 11.72 亿部。手机已经成为百姓的基 本日用品! 给手机选个好听又好记的号码可能是许多人的心愿。 但号源有限,只能辅以有偿选号的方法了。 这个程序的目的就是:根据给定的手机尾号(4 位) ,按照一定的规则来打分。其规则如下: 1. 如果出现连号,不管升序还是降序,都加 5 分。例如:5678,4321 都满足加分标准。 2. 前三个数字相同,或后三个数字相同,都加 3 分。例如:4888,6665,7777 都满足加分的标准。 注意:7777 因为满足这条标准两次,所以这条规则给它加了 6 分。 3. 符合 AABB 或者 ABAB 模式的加 1 分。例如:2255,3939,7777 都符合这个模式,所以都被加分。 注意:7777 因为满足这条标准两次,所以这条标准给它加了 2 分。 4. 含有:6,8,9 中任何一个数字,每出现一次加 1 分。例如 4326,6875,9918 都符合加分标准。其中,6875 被加 2 分;9918 被加 3 分。 尾号最终得分就是每条标准的加分总和! 要求程序从标准输入接收数据,在标准输出上输出结果。 输入格式为:第一行是一个整数 n(0) String telphone=scanner.nextLine(); int sum=0; /* * 情况一 */ if(telphone.charAt(0)-telphone.charAt(1)=1) char ch=telphone.charAt(0); int index=0; while (index=4) sum+=5; if (telphone.charAt(0)-telphone.charAt(1)=-1) char ch=telphone.charAt(0); int index=0; while (index=4) sum+=5; /* * 情况二 */ if (telphone.charAt(0)=telphone.charAt(1) if(telphone.charAt(1)=telphone.charAt(2) 10 /* * 情况三 */ if(telphone.charAt(0)=telphone.charAt(1) if(telphone.charAt(0)=telphone.charAt(2) /* * 情况四 */ for (int i = 0; i 4; i+) if(telphone.charAt(i)=6|telphone.charAt(i)=8|telphone.charAt(i)=9) sum+=1; System.out.println(sum); 运行结果: 14 3045 0211 . . 8 5 6. 括号问题 下面的代码用于判断一个串中的括号是否匹配 所谓匹配是指不同类型的括号必须左右呼应,可以相互包含,但不 能交叉 例如: .(.). 是允许的 .(.). 是禁止的 11 对于 main 方法中的测试用例,应该输出: false true false false 请分析代码逻辑,并推测划线处的代码。 答案写在 “解答.txt” 文件中 注意:只写划线处应该填的内容,划线前后的内容不要抄写。 */ import java.util.*; public class Demo06 public static boolean isGoodBracket(String s) Stack a = new Stack(); for (int i = 0; i = 0 / 填空 return getFirstNum(s.substring(1); / 填空 public static void main(String args) String s1 = abc24us43; /则返回2 String s2 = 82445adb5; /则返回8 String s3 = ab; /则返回-1 System.out.println(getFirstNum(s1); System.out.println(getFirstNum(s2); System.out.println(getFirstNum(s3); 运行结果: 2 8 -1 9. 放麦子 /* 你一定听说过这个故事。国王对发明国际象棋的大臣很佩服, 问他要什么报酬,大臣说:请在第 1 个棋盘格放 1 粒麦子, 在第 2 个棋盘格放 2 粒麦子,在第 3 个棋盘格放 4 粒麦子, 在第 4 个棋盘格放 8 粒麦子,.后一格的数字是前一格的两倍, 直到放完所有棋盘格(国际象棋共有 64 格) 。 国王以为他只是想要一袋麦子而已,哈哈大笑。 14 当时的条件下无法准确计算,但估算结果令人吃惊:即使全世界都铺满麦子也不够用! 请你借助计算机准确地计算,到底需要多少粒麦子。 答案写在“解答.txt”中,不要写在这里! */ package Question1_9; import java.math.BigInteger; public class Question9 public static void main(String args) BigInteger total=new BigInteger(0); BigInteger base=new BigInteger(2); for (int i = 0; i 64; i+) total=total.add(base.pow(i); /System.out.println(total); System.out.println(total); System.out.println(base.pow(64).add(new BigInteger(-1); 运行结果: 18446744073709551614 10. 求 21 位数的水仙花数 package Question10_19; import java.math.BigInteger; import java.util.Scanner; class Question10Think2OptimizeMustRemember public static int size; public static int array=0,1,2,3,4,5,6,7,8,9; public static BigInteger powArray = new BigInteger10; / 记录09的size次方 public static int usedTimes=new int10;/ 记录09的使用次数 public static BigInteger iPowSizeMultiplyj; /记录0到9中任意数字i的N次方乘以i出现的次 数j的结果(iN*j) public static BigInteger MAX; / size位的数字能表示的最大值 public static BigInteger MIN; / size位的数字能表示的最小值 public static void init() / 用于初始化powArray,MAX,MIN 15 for (int i = 0; i 10; i+) / 初始化powArray powArrayi = (new BigInteger( + i).pow(size); MIN = (new BigInteger(10).pow(size - 1); / 初始化最小值 MAX = (new BigInteger(10).pow(size).add(new BigInteger(-1);/ 初始化最大值 iPowSizeMultiplyj=new BigInteger10size+1; /初始化iPowSizeMultiplyj for (int i = 0; i 10; i+) iPowSizeMultiplyji0=BigInteger.valueOf(0); for (int j = 1; j 1) /超过最大值,递归结束 return; if(used=size)/size位全部分配完毕 if(pareTo(MIN)0) /已获得的值小于最小值 return; else String s=current+; int avaliableValueUsed=new int10; for (int i = 0; i s.length(); i+) avaliableValueUseds.charAt(i)-0+; for (int i = 0; i 31) continue; if(!(i%2012=0 if(month!=6) continue; System.out.println(i); break; 运行结果: 19550604 12. 填算式 /* 看这个算式: + = 如果每个五角星代表 1 9 的不同的数字。 这个算式有多少种可能的正确填写方法? 173 + 286 = 459 18 295 + 173 = 468 173 + 295 = 468 183 + 492 = 675 以上都是正确的填写法! 注意: 111 + 222 = 333 是错误的填写法! 因为每个数字必须是不同的! 也就是说:19 中的所有数字,每个必须出现且仅出现一次! 注意注意: 不包括数字不包括数字“0” ! 注意: 满足加法交换率的式子算两种不同的答案。 所以答案肯定是个偶数! 注意: 只要求计算不同的填法的数目 不要求列出所有填写法 更不要求填写源代码! */ package Question10_19; import java.util.Vector; public class Question12 public static int count; public static void AllType(Vector sourse,Vectorresult) if(sourse.size()=0) /System.out.println(result); int a=(result.elementAt(0)-0)*100+(result.elementAt(1)-0)*10+result.elementAt(2)-0; int b=(result.elementAt(3)-0)*100+(result.elementAt(4)-0)*10+result.elementAt(5)-0; int c=(result.elementAt(6)-0)*100+(result.elementAt(7)-0)*10+result.elementAt(8)-0; if(a+b=c) System.out.printf(%d + %d = %dn,a,b,c); count+; else for (int i = 0; i sourse.size(); i+) result.add(sourse.elementAt(i); sourse.remove(i); AllType(sourse, result); sourse.add(i, result.elementAt(result.size()-1); result.remove(result.size()-1); public static void main(String args) 19 Vectorsourse=new Vector(); Vectorresult=new Vector(); for (int i = 1; i = 9; i+) sourse.add(char)(0+i); AllType(sourse, result); System.out.println(count); 运行结果: 124 + 659 = 783 125 + 739 = 864 127 + 359 = 486 127 + 368 = 495 128 + 367 = 495 128 + 439 = 567 129 + 357 = 486 129 + 438 = 567 129 + 654 = 783 129 + 735 = 864 134 + 658 = 792 135 + 729 = 864 138 + 429 = 567 138 + 654 = 792 139 + 428 = 567 139 + 725 = 864 142 + 596 = 738 142 + 695 = 837 143 + 586 = 729 145 + 692 = 837 146 + 583 = 729 146 + 592 = 738 152 + 487 = 639 152 + 784 = 936 154 + 629 = 783 154 + 638 = 792 154 + 782 = 936 157 + 329 = 486 157 + 482 = 639 158 + 634 = 792 159 + 327 = 486 159 + 624 = 783 162 + 387 = 549 162 + 783 = 945 20 163 + 782 = 945 167 + 328 = 495 167 + 382 = 549 168 + 327 = 495 173 + 286 = 459 173 + 295 = 468 175 + 293 = 468 176 + 283 = 459 182 + 367 = 549 182 + 394 = 576 182 + 457 = 639 182 + 493 = 675 182 + 754 = 936 182 + 763 = 945 183 + 276 = 459 183 + 492 = 675 183 + 546 = 729 183 + 762 = 945 184 + 392 = 576 184 + 752 = 936 186 + 273 = 459 186 + 543 = 729 187 + 362 = 549 187 + 452 = 639 192 + 384 = 576 192 + 483 = 675 192 + 546 = 738 192 + 645 = 837 193 + 275 = 468 193 + 482 = 675 194 + 382 = 576 195 + 273 = 468 195 + 642 = 837 196 + 542 = 738 214 + 569 = 783 214 + 659 = 873 215 + 478 = 693 215 + 748 = 963 216 + 378 = 594 216 + 738 = 954 218 + 349 = 567 218 + 376 = 594 218 + 439 = 657 218 + 475 = 693 218 + 736 = 954 218 + 745 = 963 219 + 348 = 567 21 219 + 438 = 657 219 + 564 = 783 219 + 654 = 873 234 + 657 = 891 235 + 746 = 981 236 + 718 = 954 236 + 745 = 981 237 + 654 = 891 238 + 419 = 657 238 + 716 = 954 239 + 418 = 657 241 + 596 = 837 243 + 576 = 819 243 + 675 = 918 245 + 673 = 918 245 + 718 = 963 245 + 736 = 981 246 + 573 = 819 246 + 591 = 837 246 + 735 = 981 248 + 319 = 567 248 + 715 = 963 249 + 318 = 567 251 + 397 = 648 254 + 619 = 873 254 + 637 = 891 257 + 391 = 648 257 + 634 = 891 259 + 614 = 873 264 + 519 = 783 269 + 514 = 783 271 + 593 = 864 271 + 683 = 954 273 + 186 = 459 273 + 195 = 468 273 + 546 = 819 273 + 591 = 864 273 + 645 = 918 273 + 681 = 954 275 + 193 = 468 275 + 418 = 693 275 + 643 = 918 276 + 183 = 459 276 + 318 = 594 276 + 543 = 819 278 + 316 = 594 278 + 415 = 693 22 281 + 394 = 675 281 + 673 = 954 283 + 176 = 459 283 + 671 = 954 284 + 391 = 675 286 + 173 = 459 291 + 357 = 648 291 + 384 = 675 291 + 546 = 837 291 + 573 = 864 293 + 175 = 468 293 + 571 = 864 294 + 381 = 675 295 + 173 = 468 296 + 541 = 837 297 + 351 = 648 314 + 658 = 972 316 + 278 = 594 317 + 529 = 846 317 + 628 = 945 318 + 249 = 567 318 + 276 = 594 318 + 627 = 945 318 + 654 = 972 319 + 248 = 567 319 + 527 = 846 324 + 567 = 891 324 + 657 = 981 327 + 159 = 486 327 + 168 = 495 327 + 519 = 846 327 + 564 = 891 327 + 618 = 945 327 + 654 = 981 328 + 167 = 495 328 + 617 = 945 329 + 157 = 486 329 + 517 = 846 341 + 586 = 927 342 + 576 = 918 346 + 572 = 918 346 + 581 = 927 348 + 219 = 567 349 + 218 = 567 351 + 297 = 648 352 + 467 = 819 354 + 618 = 972 23 354 + 627 = 981 357 + 129 = 486 357 + 291 = 648 357 + 462 = 819 357 + 624 = 981 358 + 614 = 972 359 + 127 = 486 362 + 187 = 549 362 + 457 = 819 364 + 527 = 891 367 + 128 = 495 367 + 182 = 549 367 + 452 = 819 367 + 524 = 891 368 + 127 = 495 372 + 546 = 918 376 + 218 = 594 376 + 542 = 918 378 + 216 = 594 381 + 294 = 675 381 + 546 = 927 382 + 167 = 549 382 + 194 = 576 384 + 192 = 576 384 + 291 = 675 386 + 541 = 927 387 + 162 = 549 391 + 257 = 648 391 + 284 = 675 392 + 184 = 576 394 + 182 = 576 394 + 281 = 675 397 + 251 = 648 415 + 278 = 693 418 + 239 = 657 418 + 275 = 693 419 + 238 = 657 428 + 139 = 567 429 + 138 = 567 438 + 129 = 567 438 + 219 = 657 439 + 128 = 567 439 + 218 = 657 452 + 187 = 639 452 + 367 = 819 457 + 182 = 639 457 + 362 = 819 24 462 + 357 = 819 467 + 352 = 819 475 + 218 = 693 478 + 215 = 693 482 + 157 = 639 482 + 193 = 675 483 + 192 = 675 487 + 152 = 639 492 + 183 = 675 493 + 182 = 675 514 + 269 = 783 517 + 329 = 846 519 + 264 = 783 519 + 327 = 846 524 + 367 = 891 527 + 319 = 846 527 + 364 = 891 529 + 317 = 846 541 + 296 = 837 541 + 386 = 927 542 + 196 = 738 542 + 376 = 918 543 + 186 = 729 543 + 276 = 819 546 + 183 = 729 546 + 192 = 738 546 + 273 = 819 546 + 291 = 837 546 + 372 = 918 546 + 381 = 927 564 + 219 = 783 564 + 327 = 891 567 + 324 = 891 569 + 214 = 783 571 + 293 = 864 572 + 346 = 918 573 + 246 = 819 573 + 291 = 864 576 + 243 = 819 576 + 342 = 918 581 + 346 = 927 583 + 146 = 729 586 + 143 = 729 586 + 341 = 927 591 + 246 = 837 591 + 273 = 864 592 + 146 = 738 25 593 + 271 = 864 596 + 142 = 738 596 + 241 = 837 614 + 259 = 873 614 + 358 = 972 617 + 328 = 945 618 + 327 = 945 618 + 354 = 972 619 + 254 = 873 624 + 159 = 783 624 + 357 = 981 627 + 318 = 945 627 + 354 = 981 628 + 317 = 945 629 + 154 = 783 634 + 158 = 792 634 + 257 = 891 637 + 254 = 891 638 + 154 = 792 642 + 195 = 837 643 + 275 = 918 645 + 192 = 837 645 + 273 = 918 654 + 129 = 783 654 + 138 = 792 654 + 219 = 873 654 + 237 = 891 654 + 318 = 972 654 +
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 7.5 解直角三角形说课稿-2025-2026学年初中数学苏科版2012九年级下册-苏科版2012
- 人教版二年级上册数学全册集体备课教学设计(配2025年秋改版教材)
- 二年级品德下册 主题三“我们一起做”说课稿 首师大版
- 探究与实践 看云识天气教学设计-2025-2026学年初中地理湘教版2024七年级上册-湘教版2024
- 《第一单元 唱歌 大雨和小雨》(教学设计)-2023-2024学年人教版(2012)音乐一年级上册
- 农药的田间药效试验说课稿-2025-2026学年中职专业课-植物保护技术-农林类-农林牧渔大类
- 蒲城县医院知识培训课件
- 蒜苔农业知识培训课件
- 葡萄酒酒标基础知识培训
- 2025年林业时政试题及答案解析
- 2025年事业单位考试题库及参考答案
- 2025年公安机关人民警察(基本级)执法资格等级题库及答案
- 物流客服培训课件
- 人教版(2024)八年级上册英语Unit 2 Home Sweet Home教案
- 校园食堂食品安全知识培训课件
- 2025年中小学学生校园安全学习教育基本知识试题库(附含答案)
- 公司领导财务知识培训课件
- 2025年农商行农业保险融资担保贷款合同模板
- 2025年全国中小学校党组织书记网络培训示范班在线考试题库及答案
- 部编版七年级历史上学期开学第一课
- 子痫患者护理查房
评论
0/150
提交评论