蓝桥杯java习题
蓝桥杯2022测试题答案

蓝桥杯2022测试题答案一、选择题1. 在C++中,下列哪个关键字用于定义类的构造函数?A. classB. publicC. newD. constructor答案:D2. 下列关于Python中列表(list)的描述,哪项是正确的?A. 列表是不可变的序列类型。
B. 列表不支持添加元素。
C. 列表可以通过下标访问元素。
D. 列表不支持删除元素。
答案:C3. 在Java中,final关键字的作用是?A. 使变量成为静态常量。
B. 使方法不能被重写。
C. 使类不能被继承。
D. 使变量的值在初始化后不可更改。
答案:D4. 在HTML中,用于创建超链接的标签是?A. <a>B. <link>C. <img>D. <script>答案:A5. 下列哪个算法属于贪心算法?A. 快速排序B. 动态规划C. 回溯算法D. 霍夫曼编码答案:D二、填空题1. 在计算机科学中,_________ 原理是指在解决问题时,通过解决子问题来递归地构造出解决方案。
答案:分治2. 数据库设计中,_________ 范式(NF)的核心思想是消除数据的传递依赖,确保数据库表中的数据项只依赖于主键。
答案:第三3. 在软件开发中,_________ 模式是一种设计模式,它允许系统在不修改现有代码的基础上引入新的功能。
答案:装饰器4. 计算机网络中,_________ 是指通过互联网发送和接收电子邮件消息的过程。
答案:SMTP(简单邮件传输协议)5. 操作系统中,_________ 是指系统资源的分配和回收,确保系统高效、稳定运行。
答案:调度三、简答题1. 请简述TCP和UDP的区别。
答:TCP(传输控制协议)和UDP(用户数据报协议)是两种常见的网络传输层协议。
TCP提供可靠的、面向连接的服务,它通过三次握手建立连接,确保数据的顺序和完整性,适用于需要高可靠性的应用,如网页浏览和文件传输。
蓝桥杯例题

1.蓝桥杯全国软件和信息技术专业人才大赛是由哪个部门主办的?A.教育部(答案)B.科技部C.工业和信息化部D.国家发展和改革委员会2.蓝桥杯大赛主要考察参赛者的哪些能力?A.编程和算法设计能力(答案)B.市场营销能力C.团队协作能力D.演讲能力3.蓝桥杯大赛通常分为哪些组别进行比赛?A.大学A组、大学B组和大学C组(答案)B.初级组、中级组和高级组C.青少年组、成人组和大师组D.企业组、学校组和个人组4.在蓝桥杯大赛中,以下哪种编程语言是常用的?A.C/C++(答案)B.Python(虽然Python也常被使用,但在此处作为非唯一或首选答案)C.Java(Java也是常用语言,但同样非首选答案)D.JavaScript5.蓝桥杯大赛的获奖者通常可以获得哪些奖励?A.奖金、证书和学校加分(答案)B.实物奖品、旅游机会和荣誉称号C.股票、期权和就业机会D.学术期刊发表机会6.蓝桥杯大赛的参赛资格通常要求参赛者是什么身份?A.在校大学生(答案)B.企业员工C.专业程序员D.无特定身份要求7.在蓝桥杯大赛中,以下哪个环节不是必须的?A.提交代码并运行通过测试((答案,此选项描述了一个通常情况,但并非所有题目都需提交并运行代码,而是根据题目要求可能只需提交答案或解题思路)B.理解题目要求C.设计算法或解决方案D.在规定时间内完成题目8.蓝桥杯大赛的题目难度通常是如何分布的?A.从易到难,逐步增加(答案)B.所有题目难度相同C.难度随机分布D.先难后易9.参加蓝桥杯大赛对参赛者未来的职业发展有哪些帮助?A.提升编程技能和算法设计能力,增加就业竞争力(答案)B.直接获得高薪工作机会C.获得学术研究成果D.无需进一步学习即可成为专家10.蓝桥杯大赛的举办周期是多久?A.每年一届(答案)B.每两年一届C.每季度一届D.每月一届。
第九届蓝桥杯JavaC组省赛真题

第九届蓝桥杯JavaC组省赛真题解题代码部分来⾃⽹友,如果有不对的地⽅,欢迎各位⼤佬评论题⽬1、哪天返回题⽬描述⼩明被不明势⼒劫持。
后被扔到x星站再⽆问津。
⼩明得知每天都有飞船飞往地球,但需要108元的船票,⽽他却⾝⽆分⽂。
他决定在x星战打⼯。
好⼼的⽼板答应包⾷宿,第1天给他1元钱。
并且,以后的每⼀天都⽐前⼀天多2元钱,直到他有⾜够的钱买票。
请计算⼀下,⼩明在第⼏天就能凑够108元,返回地球。
要求提交的是⼀个整数,表⽰第⼏天。
请不要提交任何多余的内容。
package Lqb;public class Text27 {public static void main(String[] args) {int money=1;int dayMoney=1;int day=1;System.out.println("第 "+day+" 天:"+"⼯资:"+dayMoney+" "+money);while(money<108){dayMoney+=2;money+=dayMoney;day++;System.out.println("第 "+day+" 天:"+"⼯资:"+dayMoney+" "+money);}}}题⽬2、猴⼦分⾹蕉题⽬描述5只猴⼦是好朋友,在海边的椰⼦树上睡着了。
这期间,有商船把⼀⼤堆⾹蕉忘记在沙滩上离去。
第1只猴⼦醒来,把⾹蕉均分成5堆,还剩下1个,就吃掉并把⾃⼰的⼀份藏起来继续睡觉。
第2只猴⼦醒来,重新把⾹蕉均分成5堆,还剩下2个,就吃掉并把⾃⼰的⼀份藏起来继续睡觉。
第3只猴⼦醒来,重新把⾹蕉均分成5堆,还剩下3个,就吃掉并把⾃⼰的⼀份藏起来继续睡觉。
第4只猴⼦醒来,重新把⾹蕉均分成5堆,还剩下4个,就吃掉并把⾃⼰的⼀份藏起来继续睡觉。
蓝桥杯算法训练习题与官方答案

算法训练编号:ALGO-1题目:区间k大数查询列关键字:排序查找类型:普通试题问题描述给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。
输入格式第一行包含一个数n,表示序列长度。
第二行包含n个正整数,表示给定的序列。
第三个包含一个正整数m,表示询问个数。
接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。
序列元素从1开始标号。
输出格式总共输出m行,每行一个数,表示询问的答案。
样例输入51 2 3 4 521 5 22 3 2样例输出42数据规模与约定对于30%的数据,n,m<=100;对于100%的数据,n,m<=1000;保证k<=(r-l+1),序列中的数<=1000000。
本题的Java参考代码如下:import java.io.BufferedInputStream;import java.io.IOException;import java.util.Arrays;public class Main{private static BufferedInputStream in = new BufferedInputStream(System.in);public static void main(String[] args) throws IOException{int[] nums = new int[readInt()];for(int i=0; i<nums.length; i++){nums[i] = readInt();}for(int i=readInt(); i>0; i--){int a = readInt();int b = readInt();int c = readInt();int[] tn = new int[b-a+1];for(int j=0; j<tn.length; j++){tn[j] = nums[a-1+j];}Arrays.sort(tn);System.out.println(tn[tn.length-c]);}}private static int readInt() throws IOException{int i,sum=0;while(((i=in.read())&48) != 48 || i>57);for(;(i&56) == 48 || (i&62) == 56; i=in.read())sum = sum*10 + (i&15);return sum;}}编号:ALGO-2题目:最大最小公倍数关键字:贪心类型:普通试题问题描述已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。
蓝桥杯大题总结(历届比赛共40多大题)

蓝桥杯大题总结(历届比赛共40多大题)常用算法题目1.算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种。
如:给定A、B、C三个不同的字符,则结果为:ABC、ACB、BAC、BCA、CAB、CBA 一共3!=3*2=6种情况。
用程序实现输入的N个字符的全排列并输出。
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个字符。
用程序实现该串处理操作功能。
3.猜算式看下面的算式:□□ x □□ = □□ x □□□它表示:两个两位数相乘等于一个两位数乘以一个三位数。
如果没有限定条件,这样的例子很多。
但目前的限定是:这9个方块,表示1~9的9个数字,不包含0。
该算式中1至9的每个数字出现且只出现一次!比如:46 x 79 = 23 x 15854 x 69 = 27 x 13854 x 93 = 27 x 186.....请编程,输出所有可能的情况!注意:左边的两个乘数交换算同一方案,不要重复输出!不同方案的输出顺序不重要3. Excel地址转换Excel是最常用的办公软件。
每个单元格都有唯一的地址表示。
比如:第12行第4列表示为:“D12”,第5行第255列表示为“IU5”。
事实上,Excel提供了两种地址表示方法,还有一种表示法叫做RC格式地址。
2014第五届蓝桥杯JAVA本科B组试题及答案解析

2 2 4
程序应该输出
4
资源约定
峰值内存消耗 含虚拟机< 256M
CPU消耗< 1000ms
请严格按要求输出 不要画蛇添足地打印类似 “请您输入...”的多余内容。
所有代码放在同一个源文件中 调试通过后 拷贝提交该源码。注意 不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意 主类的名字必须是Main否则按无效代码处理。答案:
else
System.out.print(num[i]);
}
System.out.println();
}
public static boolean judge(char[] num) {
boolean[] bool = new boolean[5];
int size_A = 0, size_2 = 0, size_3 = 0, size_4 = 0;
2342A3A4
请通过浏览器提交答案。“A”一定不要用小写字母a也不要用“1”代替。字符间一定不
要留空格。
答案2342A3A4
public class扑克序列{//这题有病 总共就两种情况 题目还给出了
public static int count = 0;
public static void main(String[] args) {
if(arr[index] == true) { //当在圈里时
if(countNum%2 == 0) { //下标为偶数时
arr[index] = false; //该字母退出圈子
leftCount --; //剩余字母数目减一
} countNum++;
}
蓝桥杯考试题及答案
蓝桥杯考试题及答案一、单项选择题(每题2分,共10题)1. 以下哪个不是计算机编程语言?A. PythonB. JavaC. C++D. English答案:D2. 在HTML中,用于定义最重要的标题的标签是?A. `<h1>`B. `<h6>`C. `<head>`D. `<body>`答案:A3. 在数据库中,用于删除表中数据的SQL命令是?A. DELETEB. DROPC. INSERTD. UPDATE答案:A4. 哪种数据结构允许在两端进行插入和删除操作?A. 栈B. 队列C. 链表D. 数组答案:C5. 在计算机科学中,二进制数“1010”转换为十进制数是多少?A. 8B. 10C. 12D. 14答案:B6. 以下哪个选项不是面向对象编程的特性?A. 封装B. 继承C. 多态D. 过程化答案:D7. 在JavaScript中,用于定义函数的关键字是?A. functionB. varC. letD. const答案:A8. 在Unix/Linux系统中,查看当前目录下的文件和文件夹的命令是?A. lsB. pwdC. cdD. mkdir答案:A9. 以下哪个算法不是排序算法?A. 快速排序B. 归并排序C. 深度优先搜索D. 堆排序答案:C10. 在计算机图形学中,3D图形渲染中常用的坐标系统是?A. 笛卡尔坐标系B. 极坐标系C. 柱面坐标系D. 球面坐标系答案:A二、填空题(每题2分,共5题)1. 在Python中,用于创建空列表的语法是____。
答案:[]2. 在HTML中,用于创建超链接的标签是____。
答案:<a>3. SQL查询语句中,用于选择所有列的关键字是____。
答案:*4. 在计算机科学中,一个算法的时间复杂度通常用____表示。
答案:大O符号5. 在JavaScript中,用于获取元素的CSS样式的属性是____。
蓝桥杯大赛试题及答案
蓝桥杯大赛试题及答案 一、单项选择题 1. 在计算机编程中,以下哪个关键字用于定义一个类? A. class B. function C. struct D. interface 答案:A
2. 在HTML中,用于创建无序列表的标签是? A.
3. 在JavaScript中,以下哪个方法用于将字符串转换为大写? A. toLowerCase() B. toUpperCase() C. trim() D. split() 答案:B
二、填空题 1. 在Python中,用于计算列表中元素个数的函数是____。 答案:len()
2. 在CSS中,用于设置元素背景颜色的属性是____。 答案:background-color 3. 在SQL中,用于选择所有列的关键字是____。 答案:*
三、简答题 1. 请简述什么是算法的时间复杂度,并给出一个例子。 答案:算法的时间复杂度是指算法执行时间随输入数据规模增长的变化趋势。例如,对于一个简单的线性搜索算法,其时间复杂度为O(n),意味着随着输入数据的增加,算法执行时间线性增长。
2. 解释什么是闭包,并给出一个JavaScript中闭包的应用场景。 答案:闭包是指一个函数能够访问其外部作用域中的变量。在JavaScript中,闭包的一个应用场景是创建私有变量,例如在模块模式中,外部函数可以访问内部函数的变量,但内部函数的变量对外部是不可见的。
四、编程题 1. 编写一个函数,实现计算两个整数的和。 答案: ```python def sum_numbers(a, b): return a + b ```
2. 编写一个函数,实现检查一个字符串是否是回文。 答案: ```javascript function isPalindrome(str) { var reversedStr = str.split('').reverse().join(''); return str === reversedStr; } ```
java实现第四届蓝桥杯振兴中华
java实现第四届蓝桥杯振兴中华振兴中华题⽬描述⼩明参加了学校的趣味运动会,其中的⼀个项⽬是:跳格⼦。
地上画着⼀些格⼦,每个格⼦⾥写⼀个字,如下所⽰:(也可参见p1.jpg)从我做起振我做起振兴做起振兴中起振兴中华⽐赛时,先站在左上⾓的写着“从”字的格⼦⾥,可以横向或纵向跳到相邻的格⼦⾥,但不能跳到对⾓的格⼦或其它位置。
⼀直要跳到“华”字结束。
要求跳过的路线刚好构成“从我做起振兴中华”这句话。
请你帮助⼩明算⼀算他⼀共有多少种可能的跳跃路线呢?答案是⼀个整数,请通过浏览器直接提交该数字。
注意:不要提交解答过程,或其它辅助说明类的内容。
解题思路这是⼀道简单的深搜题,我们可以把每个格⼦抽象为⼀个坐标,从(0,0),华(3,4)这样。
题意说横向或纵向跳到相邻的格⼦⾥,但我们发现只有向下⾛或者向右⾛才能达到要求,向上⾛或者想左⾛都不可能达到要求。
所以在路线的总数为所在格⼦向下⾛的线路数和想右⾛的线路数的总和,当⾛到下边界或者右边界时,线路就已经确定了。
public class Main {public static void main(String[] args) {int ans = 0;ans = dfs(0, 0);System.out.println(ans);}public static int dfs(int i, int j) {if (i == 3 || j == 4) {return 1;}// dfs(i + 1, j):向下⾛的路线总数;dfs(i, j+ 1):向右⾛的路线总数return dfs(i + 1, j) + dfs(i, j + 1);}}结果:35。
2014年蓝桥杯官网试题(Java组)
输入一行,包含一个正整数 n。 输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。 样例输入 52 样例输出 899998 989989 998899 数据规模和约定
1<=n<=54。 基础练习 回文数 时间限制:1.0s 内存限制:512.0一样的,编程求所有这样的四位
入门训练 圆的面积 时间限制:1.0s 内存限制:256.0MB
问题描述 给定圆的半径 r,求圆的面积。 输入格式 输入包含一个整数 r,表示圆的半径。 输出格式 输出一行,包含一个实数,四舍五入保留小数点后 7 位,表示圆的面积。 说明:在本题中,输入是一个整数,但是输出是一个实数。 对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后 7 位, 则你的程序必须严格的输出 7 位小数,输出过多或者过少的小数位数都是不行的,都会被认 为错误。 实数输出的问题如果没有特别说明,舍入都是按四舍五入进行。 样例输入 4 样例输出 50.2654825 数据规模与约定 1 <= r <= 10000。 提示
基础练习 数列排序 时间限制:1.0s 内存限制:512.0MB
问题描述 给定一个长度为 n 的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式 第一行为一个整数 n。 第二行包含 n 个整数,为待排序的数,每个整数的绝对值小于 10000。
输出格式 输出一行,按从小到大的顺序输出排序后的数列。
本题对精度要求较高,请注意π的值应该取较精确的值。你可以使用常量来表示π,比如 PI=3.14159265358979323,也可以使用数学公式来求π,比如 PI=atan(1.0)*4。
入门训练 序列求和 时间限制:1.0s 内存限制:256.0MB
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.黄金分割数0.618黄金分割数0.618与美学有重要的关系。
舞台上报幕员所站的位置大约就是舞台宽度的0.618处,墙上的画像一般也挂在房间高度的0.618处,甚至股票的波动据说也能找到0.618的影子....黄金分割数是个无理数,也就是无法表示为两个整数的比值。
0.618只是它的近似值,其真值可以通过对5开方减去1再除以2来获得,我们取它的一个较精确的近似值:0.618034有趣的是,一些简单的数列中也会包含这个无理数,这很令数学家震惊!1 34 7 11 18 29 47 .... 称为“鲁卡斯队列”。
它后面的每一个项都是前边两项的和。
如果观察前后两项的比值,即:1/3,3/4,4/7,7/11,11/18... 会发现它越来越接近于黄金分割数!你的任务就是计算出从哪一项开始,这个比值四舍五入后已经达到了与0.618034一致的精度。
请写出该比值。
格式是:分子/分母。
比如:29/47[java]view plaincopy1.public static void main(String[] args)2.{3.double x = 1;4.double y = 3;5.double res = x / y * 1000000;6.while (618034 != new BigDecimal(String.valueOf(res)).setScale(0, BigDecimal.ROUND_HALF_UP).intValue())//调用BigDecimal四舍五入7. {8.double temp = x + y;9. x = y;10. y = temp;11. res = x / y * 1000000;12. }13. System.out.println((int) x + "/" + (int) y);14.}2.海盗拼酒有一群海盗(不多于20人),在船上比拼酒量。
过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。
再打开一瓶酒平分,又有倒下的,再次重复......直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。
当第4瓶酒平分喝下后,大家都倒下了。
等船长醒来,发现海盗船搁浅了。
他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......”请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。
如果有多个可能的答案,请列出所有答案,每个答案占一行。
格式是:人数,人数,...例如,有一种可能是:20,5,4,2,0[java]view plaincopy1.public static void main(String[] args)2.{3.double n = 1;4.for(int i = 4;i<=20;i++)//total5. {6.for(int j = 4;j<=i;j++)7. {8.for(int k = 3;k<=j;k++)9. {10.for(int x = 2;x<=k;x++ )11. {12.if(n/i+n/j+n/k+n/x == 1)13. {14. System.out.println(i+","+j+","+k+","+x+",0");15. }16. }17. }18. }19. }20.}3.汉诺塔汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。
大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。
大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上(可以借助第三根柱子做缓冲)。
并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
如图【1.jpg】是现代“山寨”版的该玩具。
64个圆盘太多了,所以减为7个,金刚石和黄金都以木头代替了......但道理是相同的。
据说完成大梵天的命令需要太多的移动次数,以至被认为完成之时就是世界末日!你的任务是精确计算出到底需要移动多少次。
很明显,如果只有2个圆盘,需要移动3次。
圆盘数为3,则需要移动7次。
那么64个呢?【1.jpg】[java]view plaincopy1.public static void main(String[] args)2.{3. System.out.println(BigInteger.valueOf(2).pow(64).subtract(BigInteger.valueOf(1)).toString());4.}4.答题比赛某电视台举办了低碳生活大奖赛。
题目的计分规则相当奇怪:每位选手需要回答10个问题(其编号为1到10),越后面越有难度。
答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。
每位选手都有一个起步的分数为10分。
某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗?如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示。
例如:0010110011就是可能的情况。
(提示枚举:2^10=1024)你的任务是算出所有可能情况。
每个答案占一行。
[java]view plaincopy1.public static void main(String[] args)2.{3. func(2,0,9,"0");4. func(2,1,20,"1");5.}6.7.static void func(int n,int judge,int sum ,String res)8.{9.if(n==11)10. {11.if(sum == 100)12. {13. System.out.println(res);14. }15.return;16. }17. func(n+1,0,sum-n,res+"0");18. func(n+1,1,sum*2,res+"1");19.}5.把串s中第一个出现的数字的值返回以下的静态方法实现了:把串s中第一个出现的数字的值返回。
如果找不到数字,返回-1例如:s = "abc24us43" 则返回2s = "82445adb5" 则返回8s = "ab" 则返回-1请分析代码逻辑,并推测划线处的代码。
[java]view plaincopy1.public static int getFirstNum(String s)2.{3.if(s==null|| s.length()==0) return -1;4. charc = s.charAt(0);5.if(c>='0'&& c<='9') return _____________; //填空6. return___________________________; //填空7.}答案:c-'0' getFirstNum(s.substring(1))6.PI(分割圆)南北朝时,我国数学家祖冲之首先把圆周率值计算到小数点后六位,比欧洲早了1100年!他采用的是称为“割圆法”的算法,实际上已经蕴含着现代微积分的思想。
如图【1.jpg】所示,圆的内接正六边形周长与圆的周长近似。
多边形的边越多,接近的越好!我们从正六边形开始割圆吧。
如图【2.jpg】所示,从圆心做弦的垂线,可把6边形分割为12边形。
该12边形的边长a'的计算方法很容易利用勾股定理给出。
之后,再分割为正24 边形,....如此循环会越来越接近圆周。
之所以从正六边开始,是因为此时边长与半径相等,便于计算。
取半径值为1,开始割圆吧!以下代码描述了割圆过程。
程序先输出了标准圆周率值,紧接着输出了不断分割过程中多边形边数和所对应的圆周率逼近值。
请分析代码逻辑,并推测划线处的代码。
【1.jgp】【2.jpg】[java]view plaincopy1.public class B212.{3.public static void main(String[] args)4. {5. System.out.println("标准 " + Math.PI);6.double a = 1;7.int n = 6;8.for(int i=0; i<10; i++)9. {10.double b = Math.sqrt(1-(a/2)*(a/2));11. a = Math.sqrt((1-b)*(1-b) + (a/2)*(a/2));12. n = ______________; //填空13. System.out.println(n + " " + _______________); // 填空14. }15. }16.}答案:2*n a*n/27.Max5最大5个数[12,127,85,66,27,34,15,344,156,344,29,47,....]这是某设备测量到的工程数据。
因工程要求,需要找出最大的5个值。
一般的想法是对它排序,输出前5个。
但当数据较多时,这样做很浪费时间。
因为对输出数据以外的数据进行排序并非工程要求,即便是要输出的5个数字,也并不要求按大小顺序,只要找到5个就可以。
以下的代码采用了另外的思路。
考虑如果手里已经抓着5个最大数,再来一个数据怎么办呢?让它和手里的数据比,如果比哪个大,就抢占它的座位,让那个被挤出来的再自己找位子,....请分析代码逻辑,并推测划线处的代码。
[java]view plaincopy1.import java.util.*;2.public class B233.{4. publicstatic List<Integer> max5(List<Integer> lst)5. {6.if(lst.size()<=5)return lst;7.int a = __________________________________ // 填空8. List<Integer>b = max5(lst);9.for(inti=0; i<b.size(); i++)10. {11. intt = b.get(i);12.if(a>t)13. {14. ________________________; // 填空15. a= t;16. }17. }18. returnb;19. }20. publicstatic void main(String[] args)21. {22. List<Integer>lst = new Vector<Integer>();23. lst.addAll(Arrays.asList(12,127,85,66,27,34,15,344,156,344,29,47));24. System.out.println(max5(lst));25. }26.}答案: (lst=lst.subList(1, lst.size())).get(0); b.set(i, a);8.矩形交并集在编写图形界面软件的时候,经常会遇到处理两个矩形的关系。