ImageVerifierCode 换一换
格式:DOCX , 页数:48 ,大小:31.38KB ,
资源ID:26686621      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26686621.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(蓝桥杯Java试题汇总共48页.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

蓝桥杯Java试题汇总共48页.docx

1、蓝桥杯Java试题汇总共48页 1. 历届试题 核桃的数量 问题描述小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:1. 各组的核桃数量必须相同2. 各组内必须能平分核桃(当然是不能打碎的)3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛)输入格式输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c30)输出格式输出一个正整数,表示每袋核桃的数量。样例输入12 4 5样例输出120样例输入23 1 1样例输出23JAVA源代码1import java.util.Scanner;2

2、public class Main 3 4 public static void main(String args) 5 Scanner sc=new Scanner(System.in); 6 int a=sc.nextInt(); 7 int b=sc.nextInt();8 int c=sc.nextInt();9 int i;10 for(i=1;i+)11 if(i%a=0&i%b=0&i%c=0)12 13 break;14 15 System.out.println(i);16 2. 基础练习 Sine之舞 时间限制:1.0s 内存限制:512.0MB 问题描述最近FJ为他的奶牛

3、们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。不妨设An=sin(1sin(2+sin(3sin(4+.sin(n).)Sn=(.(A1+n)A2+n-1)A3+.+2)An+1FJ想让奶牛们计算Sn的值,请你帮助FJ打印出Sn的完整表达式,以方便奶牛们做题。输入格式仅有一个数:N201。输出格式请输出相应的表达式Sn,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。样例输入3样例输出(sin(1)+3)sin(1sin(2)+2)sin(1sin(2+sin(3)+1语言JA

4、VA源代码17import java.util.Scanner;18public class Main 19 private static int m; 20 public static void main(String args) 21 Scanner sc=new Scanner(System.in); 22 m=sc.nextInt(); 23 for(int i=0;im-1;i+) 24 System.out.print(); 25 26 Sn(1);27 28 public static void An(int n,int k) 29 if(n=k) 30 System.out.p

5、rint(sin(+n); 31 else if(n%2!=0) 32 System.out.print(sin(+n+-); 33 else 34 System.out.print(sin(+n+)35 ; 36 if(nk) 37 An(n+1,k); 38 System.out.print(); 39 40 public static void Sn(int n) 41 An(1,n); 42 if(n!=m) 43 System.out.print(+(m-n+1)+); 44 else 45 System.out.print(+(m-n+1);46 47 if(nm) 48 49 S

6、n(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 52 public static char c

7、 = 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; 54 public static void main(String args) 55 Scanner scan = new Scanner(System.in); 56 int n=scan.nextInt(); 57 print(n); 58 private static void print(int n) 59 if(n = 1) 60 System.out.print(A); 61 62 else 63 print(n - 1);64 System.out.print(c

8、n - 1); print(n - 1); 4. 基础练习 芯片测试 时间限制:1.0s 内存限制:512.0MB 问题描述有n(2n20)块芯片,有好有坏,已知好芯片比坏芯片多。每个芯片都能用来测试其他芯片。用好芯片测试其他芯片时,能正确给出被测试芯片是好还是坏。而用坏芯片测试其他芯片时,会随机给出好或是坏的测试结果(即此结果与被测试芯片实际的好坏无关)。给出所有芯片的测试结果,问哪些芯片是好芯片。输入格式输入数据第一行为一个整数n,表示芯片个数。第二行到第n+1行为n*n的一张表,每行n个数据。表中的每个数据为0或1,在这n行中的第i行第j列(1i, jn)的数据表示用第i块芯片测试第j块

9、芯片时得到的测试结果,1表示好,0表示坏,i=j时一律为1(并不表示该芯片对本身的测试结果。芯片不能对本身进行测试)。输出格式按从小到大的顺序输出所有好芯片的编号样例输入31 0 10 1 01 0 1样例输出1 3语言JAVA源代码65import java.util.*;66public class Main 67 public static void main(String args) 68 Scanner sc=new Scanner(System.in);69 int n=sc.nextInt();70 int a=new intnn;71 for(int i=0;in;i+)72

10、for(int k=0;kn;k+)73 aik=sc.nextInt();74 75 76 77 78 for(int k=0;kn;k+)79 int count=0;80 for(int i=0;in/2)84 System.out.print(k+1)+ );85 5. 基础练习 龟兔赛跑预测 时间限制:1.0s 内存限制:512.0MB 问题描述话说这个世界上有各种各样的兔子和乌龟,但是研究发现,所有的兔子和乌龟都有一个共同的特点喜欢赛跑。于是世界上各个角落都不断在发生着乌龟和兔子的比赛,小华对此很感兴趣,于是决定研究不同兔子和乌龟的赛跑。他发现,兔子虽然跑比乌龟快,但它们有众所周知

11、的毛病骄傲且懒惰,于是在与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以上,它们就会停下来休息s秒。对于不同的兔子,t,s的数值是不同的,但是所有的乌龟却是一致它们不到终点决不停止。然而有些比赛相当漫长,全程观看会耗费大量时间,而小华发现只要在每场比赛开始后记录下兔子和乌龟的数据兔子的速度v1(表示每秒兔子能跑v1米),乌龟的速度v2,以及兔子对应的t,s值,以及赛道的长度l就能预测出比赛的结果。但是小华很懒,不想通过手工计算推测出比赛的结果,于是他找到了你清华大学计算机系的高才生请求帮助,请你写一个程序,对于输入的一场比赛的数据v1,v2,t,s,l,预测该场比赛的结果。输入格式输入

12、只有一行,包含用空格隔开的五个正整数v1,v2,t,s,l,其中(v1,v2=100;t=300;s=10;l=10000且为v1,v2的公倍数)输出格式输出包含两行,第一行输出比赛结果一个大写字母“T”或“R”或“D”,分别表示乌龟获胜,兔子获胜,或者两者同时到达终点。第二行输出一个正整数,表示获胜者(或者双方同时)到达终点所耗费的时间(秒数)。样例输入10 5 5 2 20样例输出D4样例输入10 5 5 1 20样例输出R3样例输入10 5 5 3 20样例输出T4语言JAVA源代码import java.util.Scanner; public class Main public st

13、atic void main(String args) Scanner sc=new Scanner(System.in); int num=new int5; for(int i=0;i5;i+) numi=sc.nextInt(); int sum1=0,sum2=0,time=1; for(int t=1;t=num2) sum2+=num1*num3; time+=num3; if(sum2sum1) System.out.println(T); System.out.println(num4/num1); else if(sum2sum1) System.out.println(R)

14、; System.out.println(time); else System.out.println(D); System.out.println(num4/num1); 6. 基础练习 报时助手 时间限制:1.0s 内存限制:512.0MB 问题描述给定当前的时间,请用英文的读法将它读出来。时间用时h和分m表示,在英文的读法中,读一个时间的方法是:如果m为0,则将时读出来,然后加上“oclock”,如3:00读作“three oclock”。如果m不为0,则将时读出来,然后将分读出来,如5:30读作“five thirty”。时和分的读法使用的是英文数字的读法,其中020读作:0:zero

15、, 1: one, 2:two, 3:three, 4:four, 5:five, 6:six, 7:seven, 8:eight, 9:nine, 10:ten, 11:eleven, 12:twelve, 13:thirteen, 14:fourteen, 15:fifteen, 16:sixteen, 17:seventeen, 18:eighteen, 19:nineteen, 20:twenty。30读作thirty,40读作forty,50读作fifty。对于大于20小于60的数字,首先读整十的数,然后再加上个位数。如31首先读30再加1的读法,读作“thirty one”。按上面

16、的规则21:54读作“twenty one fifty four”,9:07读作“nine seven”,0:15读作“zero fifteen”。输入格式输入包含两个非负整数h和m,表示时间的时和分。非零的数字前没有前导0。h小于24,m小于60。输出格式输出时间时刻的英文。样例输入0 15样例输出zero fifteen86import java.util.Scanner; 87public class Main 88 public static String time1=zero,one,two,three,four,five,six,seven,eight,nine, ten, ele

17、ven, twelve, thirteen, fourteen, fifteen, sixteen, seventeen, eighteen, nineteen,twenty; 89 public static String time2=twenty,thirty,forty,fifty; 90 public static void main(String args) 91 Scanner sc=new Scanner(System.in); 92 while(sc.hasNext() 93 int h=sc.nextInt(); 94 int m=sc.nextInt(); 95 if(h=

18、20) 96 System.out.print(time1h);97 else 98 System.out.print(twenty+ +time1h-20); 99 if(m=0) 100 System.out.println( +oclock); 101 else if(m20) 102 System.out.print( +time1m); 103 else 104 int a=m/10;/十位 105 int b=m%10;/个位 106 if(b=0)107 System.out.print( +time2a-2);108 else109 System.out.print( +tim

19、e2a-2+ +time1b); 110 111 112 System.out.println(); 113 114 115 116 117 7. 基础练习 Huffuman树 时间限制:1.0s 内存限制:512.0MB 问题描述Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。给出一列数pi=p0, p1, , pn-1,用这列数构造Huffman树的过程如下:1. 找到pi中最小的两个数,设为pa和pb,将pa和pb从pi中删除掉,然后将它们的和加入到pi中。这个过程的费用记为pa + pb。2. 重复步骤1,直到pi中只剩下一个数。在上面的操作过程中

20、,把所有的费用相加,就得到了构造Huffman树的总费用。本题任务:对于给定的一个数列,现在请你求出用该数列构造Huffman树的总费用。例如,对于数列pi=5, 3, 8, 2, 9,Huffman树的构造过程如下:1. 找到5, 3, 8, 2, 9中最小的两个数,分别是2和3,从pi中删除它们并将和5加入,得到5, 8, 9, 5,费用为5。2. 找到5, 8, 9, 5中最小的两个数,分别是5和5,从pi中删除它们并将和10加入,得到8, 9, 10,费用为10。3. 找到8, 9, 10中最小的两个数,分别是8和9,从pi中删除它们并将和17加入,得到10, 17,费用为17。4.

21、找到10, 17中最小的两个数,分别是10和17,从pi中删除它们并将和27加入,得到27,费用为27。5. 现在,数列中只剩下一个数27,构造过程结束,总费用为5+10+17+27=59。输入格式输入的第一行包含一个正整数n(n=100)。接下来是n个正整数,表示p0, p1, , pn-1,每个数不超过1000。输出格式输出用这些数构造Huffman树的总费用。样例输入55 3 8 2 9样例输出59语言JAVA源代码118import java.util.*;119public class Main120 public static void main(String args)121 S

22、canner sc=new Scanner(System.in);122 while(sc.hasNext()123 int n=sc.nextInt();124 int a=new intn;125 for(int i=0;i1)131 Arrays.sort(a);132 k=a0+a1;133 sum=sum+k;134 a0=k;135 a1=Integer.MAX_VALUE;136 n-;137 138 139 System.out.print(sum);140 141 8. 基础练习 高精度加法 时间限制:1.0s 内存限制:512.0MB 问题描述输入两个整数a和b,输出这两个

23、整数的和。a和b都不超过100位。算法描述由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。定义一个数组A,A0用于存储a的个位,A1用于存储a的十位,依此类推。同样可以用一个数组B来存储b。计算c = a + b的时候,首先将A0与B0相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数存入C0,即C0等于(A0+B0)%10。然后计算A1与B1相加,这时还应将低位进上来的值r也加起来,即C1应该是A1、B1和r三个数的和如果又有进位产生,则仍可将新的进位存入到r中,和的个位存到C1中。依此类推,即可求出C的所有位。最后将C输出即

24、可。输入格式输入包括两行,第一行为一个非负整数a,第二行为一个非负整数b。两个整数都不超过100位,两数的最高位都不是0。输出格式输出一行,表示a + b的值。样例输入201901222019012212345678902019012220190122样例输出20190122203011233454668012语言JAVA源代码142import java.util.*;143import java.math.*;144public class Main145 public static void main(String args)146 Scanner sc=new Scanner(Syst

25、em.in);147 while(sc.hasNext()148 String s1=sc.next();149 String s2=sc.next();150 BigInteger n1=new BigInteger(s1);151 BigInteger n2=new BigInteger(s2);152 System.out.println(n1.add(n2);153 154 155 9.问题描述输入一个正整数n,输出n!的值。其中n!=1*2*3*n。算法描述n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A0表示a的个位,A1表

26、示a的十位,依次类推。将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。输入格式输入包含一个正整数n,n=1000。输出格式输出n!的准确值。样例输入10样例输出3628800JAVA源代码156import java.util.Arrays;157import java.util.Scanner;158public class Main 159 static int max =10000; 160 public static void main(String args) 161 int A = new intmax; 162 Scanner input = new Scanner(System.in);163 int n = input.nextInt(); 164 A0 = 1; 165 int count = 0; 166 for(int i=1;i=n;i+) 167 int ge = 0,sum; 168 for(int j=0;j=0;i-) 186 System.out.print(Ai); 187

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1