蓝桥杯Java试题汇总

合集下载

蓝桥杯java练习题分类汇总

蓝桥杯java练习题分类汇总

蓝桥杯java练习题分类汇总蓝桥杯java练习题分类汇总(⼀)字符串处理类型题⽬1.密码破解据说最早的密码来⾃于罗马的凯撒⼤帝。

消息加密的办法是:对消息原⽂中的每个字母,分别⽤该字母之后的第5个字母替换(例如:消息原⽂中的每个字母A都分别替换成字母F)。

⽽你要获得消息原⽂,也就是要将这个过程反过来。

密码字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z M原⽂字母:V W X Y Z A B C D E F G H I J K L M N O P Q R S T U(注意:只有字母会发⽣替换,其他⾮字母的字符不变,并且消息原⽂的所有字母都是⼤写的。

)输⼊:最多不超过100个数据集组成,每个数据集之间不会有空⾏,每个数据集由3部分组成:1.起始⾏:START2.密码消息:由1到200个字符组成⼀⾏,表⽰凯撒发出的⼀条消息.3.结束⾏:END在最后⼀个数据集之后,是另⼀⾏:ENDOFINPUT。

输出:每个数据集对应⼀⾏,是凯撒的原始消息。

Sample InputSTARTNS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJXENDSTARTN BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJENDSTARTIFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ ENDENDOFINPUTSample OutputIN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSESI WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROMEDANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE2. 判断是否为回⽂串形如:“abccba”,“abcba”的串称为回⽂串(指顺读和倒读都⼀样的词语),下列代码判断⼀个串是否为回⽂串。

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

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

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(Vector<Character>sourse, Vector<Character> 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++) {Vector<Character>tsourse=new Vector<Character>(sourse);Vector<Character>tresult=new Vector<Character>(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<Character> sourse=new Vector<Character>();Vector<Character> result=new Vector<Character>();for (int i = 0; i < n; i++) {sourse.add((char)('A'+i));}new Question1().fullPermutation(sourse, result);System.out.println(Question1.count);}}方法二:import java.util.ArrayList;import java.util.Iterator;import java.util.LinkedHashSet;import java.util.List;import java.util.Scanner;import java.util.Set;public class Demo03 {// 去掉重复元素,放入lispublic static void removeDuplicate(String s,Set<Character> lis){for(char x:s.toCharArray()){lis.add(x);}}// 为方便操作将sets 转lispublic static void convert(List<Character> lis,Set<Character> sets){Iterator<Character> iter = sets.iterator();while(iter.hasNext()){lis.add(iter.next());}}// 检测符合条件的元素组合public static void check(Set<Character> sets){List<Character> lis = new ArrayList<Character>();convert(lis,sets); // 为方便操作将sets 转lisStringBuffer sb = new StringBuffer();for(int i=0;i<lis.size()-2;i++){for(int j=i+1;j+1<lis.size();j++){ // 向后添加两位,所以j+1<lis.size() for(int k=j+1;k<lis.size();k++){sb.append(lis.get(i));sb.append(lis.get(j));sb.append(lis.get(k));System.out.println(sb); // 输出组合sb.setLength(0); // 清空}}}}public static void main(String[] args){Scanner scan = new Scanner(System.in);System.out.println("输入串(不大于30个字符)。

第八届蓝桥杯JavaC组国(决)赛真题

第八届蓝桥杯JavaC组国(决)赛真题

第⼋届蓝桥杯JavaC组国(决)赛真题解题代码部分来⾃⽹友,如果有不对的地⽅,欢迎各位⼤佬评论题⽬1、数位和题⽬描述数学家⾼斯很⼩的时候就天分过⼈。

⼀次⽼师指定的算数题⽬是:1+2+ (100)⾼斯⽴即做出答案:5050!这次你的任务是类似的。

但并⾮是把⼀个个的数字加起来,⽽是对该数字的每⼀个数位作累加。

这样从1加到100的“和”是:901从10加到15是:21,也就是:1+0+1+1+1+2+1+3+1+4+1+5,这个⼝算都可以出结果的。

按这样的“加法”,从1加到1000是多少呢? 请通过浏览器提交该结果。

当然,我们并不期望你能像⾼斯⼀样,发现数字背后深奥的秘密,只要请计算机帮忙,⼀切都easy!注意:你需要提交的是⼀个整数,不要填写任何多余的内容(⽐如:说明性⽂字)答案:13501public class _01数位和 {public static void main(String[] args) {int sum = 0;String str = "";for(int i = 1;i <= 1000;i++){str += i;}char[] arr = str.toCharArray();for(int i = 0;i < arr.length;i++){sum += arr[i]-'0';}System.out.println(sum);}}题⽬2、数字划分题⽬描述w星球的长⽼交给⼩明⼀个任务:1,2,3…16 这16个数字分为两组。

要求:这两组数字的和相同,并且,两组数字的平⽅和也相同,并且,两组数字的⽴⽅和也相同。

请你利⽤计算机的强⼤搜索能⼒解决这个问题。

并提交1所在的那个分组的所有数字。

这些数字要从⼩到⼤排列,两个数字间⽤⼀个空格分开。

即类似:1 4 5 8 … 这样的答案。

注意,只提交这⼀组数字,不要填写任何多余的内容。

笨笨有话说:只要⼀个组的成员确定了,另⼀个组的成员也就确定了。

第六届蓝桥杯大赛个人赛省赛(软件类)Java 大学B组试题

第六届蓝桥杯大赛个人赛省赛(软件类)Java 大学B组试题

第六届蓝桥杯大赛个人赛省赛(软件类)Java 大学B组试题三角形面积如图1所示。

图中的所有小方格面积都是1。

那么,图中的三角形面积应该是多少呢?请填写三角形的面积。

不要填写任何多余内容或说明性文字。

立方变自身观察下面的现象,某个数字的立方,按位累加仍然等于自身。

1^3 = 18^3 = 512 5+1+2=817^3 = 4913 4+9+1+3=17...请你计算包括1,8,17在内,符合这个性质的正整数一共有多少个?请填写该数字,不要填写任何多余的内容或说明性的文字。

三羊献瑞观察下面的加法算式:祥瑞生辉+ 三羊献瑞-------------------三羊生瑞气(如果有对齐问题,可以参看【图1.jpg】)其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。

请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。

循环节长度两个整数做除法,有时会产生循环小数,其循环部分称为:循环节。

比如,11/13=6=>0.846153846153..... 其循环节为[846153] 共有6位。

下面的方法,可以求出循环节的长度。

请仔细阅读代码,并填写划线部分缺少的代码。

public static int f(int n, int m){n = n % m;V ector v = new V ector();for(;;){v.add(n);n *= 10;n = n % m;if(n==0) return 0;if(v.indexOf(n)>=0)_______System.out.println(v.indexOf(n))__________________________ ; //填空}}注意,只能填写缺少的部分,不要重复抄写已有代码。

不要填写任何多余的文字。

九数组分数1,2,3...9 这九个数字组成一个分数,其值恰好为1/3,如何组法?下面的程序实现了该功能,请填写划线部分缺失的代码。

蓝桥杯JavaB历年竞赛真题详解

蓝桥杯JavaB历年竞赛真题详解

蓝桥杯JavaB历年竞赛真题详解
✌ 2021年第⼗⼆届省赛-题⽬+题解
题⽬序号名称题⽬类型分值
题⽬1结果填空5
题⽬2结果填空5
题⽬3结果填空10
题⽬4结果填空10
题⽬5结果填空15
题⽬6编程⼤题15
题⽬7编程⼤题20
题⽬8编程⼤题20
题⽬9编程⼤题25
题⽬10编程⼤题25✌ 2020年第⼗⼀届省赛-题⽬+题解
题⽬序号名称题⽬类型分值
题⽬1结果填空5
题⽬2结果填空5
题⽬3结果填空10
题⽬4结果填空10
题⽬5结果填空15
题⽬6编程⼤题15
题⽬7编程⼤题20
题⽬8编程⼤题20
题⽬9编程⼤题25
题⽬10编程⼤题25✌ 2019年第⼗届省赛-题⽬+题解
题⽬序号名称题⽬类型分值
题⽬1结果填空5
题⽬2结果填空5
题⽬3结果填空10
题⽬4结果填空10
题⽬5结果填空15
题⽬6编程⼤题15
题⽬7编程⼤题20
题⽬8编程⼤题20
题⽬9编程⼤题25
题⽬10编程⼤题25
题⽬10编程⼤题25✌ 2018年第九届省赛-题⽬+题解
题⽬序号名称题⽬类型分值
题⽬1结果填空5
题⽬2结果填空5
题⽬3结果填空10
题⽬4结果填空10
题⽬5结果填空15
题⽬6编程⼤题15
题⽬7编程⼤题20
题⽬8编程⼤题20
题⽬9编程⼤题25
题⽬10编程⼤题25。

第四届蓝桥杯省赛高职JAVA语言C组真题

第四届蓝桥杯省赛高职JAVA语言C组真题

第四届蓝桥杯省赛高职JAVA语言C组真题1.标题:猜年龄小明带两个妹妹参加元宵灯会。

别人问她们多大了,她们调皮地说:“我们俩的年龄之积是年龄之和的6倍”。

小明又补充说:“她们可不是双胞胎,年龄差肯定也不超过8岁啊。

”请你写出:小明的较小的妹妹的年龄。

注意:只写一个人的年龄数字,请通过浏览器提交答案。

不要书写任何多余的内容。

2.标题:等额本金小明从银行贷款3万元。

约定分24个月,以等额本金方式还款。

这种还款方式就是把贷款额度等分到24个月。

每个月除了要还固定的本金外,还要还贷款余额在一个月中产生的利息。

假设月利率是:0.005,即:千分之五。

那么,第一个月,小明要还本金1250, 还要还利息:30000 * 0.005,总计1400第二个月,本金仍然要还1250, 但利息为:(30000-1250) * 0.005 总计1393.75请问:小明在第15个月,应该还款多少(本金和利息的总和)?请把答案金额四舍五入后,保留两位小数。

注意:32.5,一定要写为:32.50通过浏览器提交答案,这是一个含有小数点和两位小数的浮点数字。

不要写多余内容(例如:多写了“元”或添加说明文字)4.骰子游戏标题:大衍数列中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传统文化中的太极衍生原理。

它的前几项是:0、2、4、8、12、18、24、32、40、50 ...其规律是:对偶数项,是序号平方再除2,奇数项,是序号平方减1再除2。

以下的代码打印出了大衍数列的前100 项。

for(int i=1; i<100; i++){if(________________) //填空System.out.println(i*i/2);elseSystem.out.println((i*i-1)/2);}请填写划线部分缺失的代码。

通过浏览器提交答案。

注意:不要填写题面已有的内容,也不要填写任何说明、解释文字。

5.标题:写日志写日志是程序的常见任务。

大学生蓝桥杯试题及答案

大学生蓝桥杯试题及答案

大学生蓝桥杯试题及答案一、选择题(每题2分,共20分)1. 在计算机科学中,通常用什么来表示一个算法的效率?A. 时间复杂度B. 空间复杂度C. 算法的可读性D. 算法的可维护性答案:A2. 下列哪种数据结构在插入和删除操作时不需要移动其他元素?A. 链表B. 数组C. 栈D. 队列答案:A3. 以下哪个选项是面向对象编程的三个基本特征?A. 封装、继承、多态B. 抽象、封装、继承C. 继承、封装、多态D. 封装、继承、抽象答案:A4. 在HTML中,用于定义最重要的标题的标签是什么?A. <h1>B. <h6>C. <title>D. <header>答案:A5. 在数据库管理系统中,用于从数据库中检索数据的SQL语句是?A. INSERTB. UPDATEC. DELETED. SELECT答案:D6. 在Java中,用于定义一个类的方法的关键字是什么?A. classB. methodC. functionD. public答案:D7. 在C语言中,用于声明一个变量为静态存储的关键字是什么?A. staticB. externC. registerD. auto答案:A8. 在Python中,用于定义一个函数的关键字是什么?A. defB. functionC. methodD. class答案:A9. 在操作系统中,用于管理进程的调度和资源分配的组件是什么?A. 文件系统B. 内存管理C. 进程管理器D. 设备驱动程序答案:C10. 以下哪个协议是用于在互联网上发送电子邮件的?A. HTTPB. FTPC. SMTPD. TCP答案:C二、填空题(每题2分,共20分)1. 在计算机科学中,________是用来衡量算法在最坏情况下执行时间的量度。

答案:时间复杂度2. 在数据结构中,________是一种允许在任意位置插入和删除数据的线性数据结构。

第六届蓝桥杯软件类省赛真题(Java B组)

第六届蓝桥杯软件类省赛真题(Java B组)
对于60%的数据:n <= 100
对于100%的数据:0 < n <= 10^9, m <= 36
资源约定:
峰值内存消耗(含虚拟机)< 256M
CPU消耗< 2000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
{
int a = x[0]*1000 + x[1]*100 + x[2]*10 + x[3];
int b = x[4]*10000 + x[5]*1000 + x[6]*100 + x[7]*10 + x[8];
if(a*3==b) + " " + b);
}
public static void f(int[] x, int k)
public static void main(String[] args)
{
int[] x = {1,2,3,4,5,6,7,8,9};
f(x,0);
}
}
注意,只能填写缺少的部分,不要重复抄写已有代码。不要填写任何多余的文字。
6、加法变乘法
我们都知道:1+2+3+ ... + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
{
if(k>=x.length){
test(x);
return;
}
for(int i=k; i<x.length; i++){
{int t=x[k]; x[k]=x[i]; x[i]=t;}
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 历届试题核桃的数量问题描述小张是软件项目经理,他带领3个开发组。

工期紧,今天都在加班呢。

为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。

他的要求是:1. 各组的核桃数量必须相同2. 各组内必须能平分核桃(当然是不能打碎的)3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛)输入格式输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30)输出格式输出一个正整数,表示每袋核桃的数量。

样例输入12 4 5样例输出120样例输入23 1 1 样例输出2 3JAVA源代码1import java.util.Scanner;2public class Main {34public static void main(String[]args){5 Scanner sc=new Scanner(System.in);6int a=sc.nextInt();7int b=sc.nextInt();8int c=sc.nextInt();9int i;10for(i=1;;i++){11if(i%a==0&&i%b==0&&i%c==0)1213break;14 }15 System.out.println(i);16}}2.基础练习Sine之舞时间限制:1.0s 内存限制:512.0MB问题描述最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。

所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。

不妨设An=sin(1–sin(2+sin(3–sin(4+...sin(n))...)Sn=(...(A1+n)A2+n-1)A3+...+2)An+1FJ想让奶牛们计算Sn的值,请你帮助FJ打印出Sn的完整表达式,以方便奶牛们做题。

输入格式仅有一个数:N<201。

输出格式请输出相应的表达式Sn,以一个换行符结束。

输出中不得含有多余的空格或换行、回车符。

样例输入3样例输出((sin(1)+3)sin(1–sin(2))+2)sin(1–sin(2+sin(3)))+1语言JAVA源代码17import java.util.Scanner;18public class Main {19private static int m;20public static void main(String[] args){21 Scanner sc=new Scanner(System.in);22 m=sc.nextInt();23for(int i=0;i<m-1;i++){24 System.out.print("(");25 }26 Sn(1);27 }28public static void An(int n,int k){29if(n==k){30 System.out.print("sin("+n);31 }else if(n%2!=0){32System.out.print("sin("+n+"-");33 }else{34System.out.print("sin("+n+"+")35 ; }36if(n<k)37 An(n+1,k);38 System.out.print(")");39 }40public static void Sn(int n){41 An(1,n);42if(n!=m){43 System.out.print("+"+(m-n+1)+")");44 }else{45 System.out.print("+"+(m-n+1));46 }47if(n<m){4849 Sn(n+1);} }}编译信息无3.基础练习FJ的字符串时间限制:1.0s 内存限制:512.0MB问题描述FJ在沙盘上写了这样一些字符串:A1 = “A”A2 = “ABA”A3 = “ABACABA”A4 = “ABACABADABACABA”… …你能找出其中的规律并写所有的数列AN吗?输入格式仅有一个数:N ≤ 26。

输出格式请输出相应的字符串AN,以一个换行符结束。

输出中不得含有多余的空格或换行、回车符。

样例输入3样例输出ABACABA言JAVA源代码50import java.util.Scanner;51public class Main {52public static char[] c ={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O', 53 'P','Q','R','S','T','U','V','W','X','Y','Z'}; 54public static void main(String[] args){55 Scanner scan = new Scanner(System.in);56int n=scan.nextInt();57 print(n); }58private static void print(int n){59if(n == 1){60 System.out.print("A");61 }62else{63 print(n - 1);64 System.out.print(c[n - 1]);print(n - 1); } }}4.基础练习芯片测试时间限制:1.0s 内存限制:512.0MB问题描述有n(2≤n≤20)块芯片,有好有坏,已知好芯片比坏芯片多。

每个芯片都能用来测试其他芯片。

用好芯片测试其他芯片时,能正确给出被测试芯片是好还是坏。

而用坏芯片测试其他芯片时,会随机给出好或是坏的测试结果(即此结果与被测试芯片实际的好坏无关)。

给出所有芯片的测试结果,问哪些芯片是好芯片。

输入格式输入数据第一行为一个整数n,表示芯片个数。

第二行到第n+1行为n*n的一张表,每行n个数据。

表中的每个数据为0或1,在这n行中的第i行第j列(1≤i, j≤n)的数据表示用第i块芯片测试第j块芯片时得到的测试结果,1表示好,0表示坏,i=j时一律为1(并不表示该芯片对本身的测试结果。

芯片不能对本身进行测试)。

输出格式按从小到大的顺序输出所有好芯片的编号样例输入31 0 10 1 01 0 1样例输出1 3语言JAVA源代码65import java.util.*;66public class Main {67public static void main(String[] args) {68 Scanner sc=newScanner(System.in);69int n=sc.nextInt();70int[][] a=new int[n][n];71for(int i=0;i<n;i++){72for(int k=0;k<n;k++){73 a[i][k]=sc.nextInt();}747576 }7778for(int k=0;k<n;k++){79int count=0;80for(int i=0;i<n;i++){81 count+=a[i][k];82 }83if(count>n/2){84 System.out.print((k+1)+" ");}85 }}}5.基础练习龟兔赛跑预测时间限制:1.0s 内存限制:512.0MB话说这个世界上有各种各样的兔子和乌龟,但是研究发现,所有的兔子和乌龟都有一个共同的特点——喜欢赛跑。

于是世界上各个角落都不断在发生着乌龟和兔子的比赛,小华对此很感兴趣,于是决定研究不同兔子和乌龟的赛跑。

他发现,兔子虽然跑比乌龟快,但它们有众所周知的毛病——骄傲且懒惰,于是在与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以上,它们就会停下来休息s秒。

对于不同的兔子,t,s的数值是不同的,但是所有的乌龟却是一致——它们不到终点决不停止。

然而有些比赛相当漫长,全程观看会耗费大量时间,而小华发现只要在每场比赛开始后记录下兔子和乌龟的数据——兔子的速度v1(表示每秒兔子能跑v1米),乌龟的速度v2,以及兔子对应的t,s值,以及赛道的长度l——就能预测出比赛的结果。

但是小华很懒,不想通过手工计算推测出比赛的结果,于是他找到了你——清华大学计算机系的高才生——请求帮助,请你写一个程序,对于输入的一场比赛的数据v1,v2,t,s,l,预测该场比赛的结果。

输入格式输入只有一行,包含用空格隔开的五个正整数v1,v2,t,s,l,其中(v1,v2<=100;t<=300;s<=10;l<=10000且为v1,v2的公倍数)输出格式输出包含两行,第一行输出比赛结果——一个大写字母“T”或“R”或“D”,分别表示乌龟获胜,兔子获胜,或者两者同时到达终点。

第二行输出一个正整数,表示获胜者(或者双方同时)到达终点所耗费的时间(秒数)。

样例输入10 5 5 2 20D4样例输入10 5 5 1 20样例输出R3样例输入10 5 5 3 20样例输出T4语言JAVA源代码import java.util.Scanner; public class Main { public static voidmain(String[] args){ Scanner sc=new Scanner(System.in); int num[]=new int[5]; for(int i=0;i<5;i++)num[i]=sc.nextInt(); int sum1=0,sum2=0,time=1; for(intt=1;t<=num[4]/num[0];time++){ sum1+=num[0]*t;sum2+=num[1]*t; if(sum1==num[4]||sum2==num[4]) break;if(sum1-sum2>=num[2]){ sum2+=num[1]*num[3]; time+=num[3]; } }if(sum2>sum1){ System.out.println("T");System.out.println(num[4]/num[1]); } elseif(sum2<sum1){ System.out.println("R");System.out.println(time); }else{ System.out.println("D");System.out.println(num[4]/num[1]); } } }6.基础练习报时助手时间限制:1.0s 内存限制:512.0MB问题描述给定当前的时间,请用英文的读法将它读出来。

相关文档
最新文档