1、蓝桥杯java习题蓝桥杯java习题 作者: 日期: 1.黄金分割数0.618 黄金分割数0.618与美学有重要的关系。舞台上报幕员所站的位置大约就是舞台宽度的061处,墙上的画像一般也挂在房间高度的.618处,甚至股票的波动据说也能找到.618的影子. 黄金分割数是个无理数,也就是无法表示为两个整数的比值。0.618只是它的近似值,其真值可以通过对开方减去再除以来获得,我们取它的一个较精确的近似值:0.184 有趣的是,一些简单的数列中也会包含这个无理数,这很令数学家震惊! 4 7 1 18 29 47 . 称为“鲁卡斯队列”。它后面的每一个项都是前边两项的和。 如果观察前后两项的比值,即:
2、/3,3/4,4/,7/11,1118. 会发现它越来越接近于黄金分割数! 你的任务就是计算出从哪一项开始,这个比值四舍五入后已经达到了与068034一致的精度。 请写出该比值。格式是:分子分母。比如:9/47jvvieplicopy1. ucstaticvidain(Srinars)2. 3. doblx=;4. ouble=;5. douber=x/y*;6. whle(61803!neigDcimal(Sing.valueO(s).etcae(,Biciml.ROUNHALF_UP)ntValue())/调用BigDecial四舍五入7. 8. dbetemp=x+y;9. x=y;10
3、. y=te;11. res=x/y*;12. 13. System.u.prinln(nt)x+/+(int)y);14. .海盗拼酒 有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复.直到开了第瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。 等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“.昨天,我正好喝了一瓶.奉劝大家,开船不喝酒,喝酒别开船.” 请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。如果有多个可能的答案,请列出所有答案,每个答案占一行
4、。格式是:人数,人数,. 例如,有一种可能是:20,5,4,2,0javveplncp1. pubicstaticvoidman(Stingas)2. 3. dobn=1;4. for(inti;i=20;i+)/total5. 6. fo(inj=4;ji;j+)7. 8. for(intk=3;=j;k+)9. 10. for(intx;x=0&c=9)etur_;/填空6. etur_;/填空7. 答案:c-0 getFsm(.sstring()6.PI(分割圆) 南北朝时,我国数学家祖冲之首先把圆周率值计算到小数点后六位,比欧洲早了10年!他采用的是称为“割圆法”的算法,实际上已经蕴含
5、着现代微积分的思想。 如图【.jpg】所示,圆的内接正六边形周长与圆的周长近似。多边形的边越多,接近的越好!我们从正六边形开始割圆吧。 如图【2.jpg】所示,从圆心做弦的垂线,可把6边形分割为边形。该12边形的边长a的计算方法很容易利用勾股定理给出。之后,再分割为正2 边形,.如此循环会越来越接近圆周。 之所以从正六边开始,是因为此时边长与半径相等,便于计算。取半径值为1,开始割圆吧! 以下代码描述了割圆过程。 程序先输出了标准圆周率值,紧接着输出了不断分割过程中多边形边数和所对应的圆周率逼近值。 请分析代码逻辑,并推测划线处的代码。 【.gp】 【2.jpg】jvviw lincopy1.
6、 ublicclss212. 3. ubtivoidman(Strigags)4. 5. Sstemouprtln(标准+Ma.I);6. dbe=1;7. tn=;8. for(nt;a(stlst)5. 6. if(stsize()=)returnlst;7. in=_/填空8. Lis=max5(l);9. o(inti0;b.size();i+)10. 11. in=b.ge(i);12. i(a)13. 14. _;/填空15. a=;16. 17. 18. retrnb;19. 20. publctaticoidmain(tringars)21. 22. sntegerlewVec
7、tr();23. taddAl(Arrays.sLis(12,127,5,27,15,344,1,44,2,47);24. Ssm.ut.piln(ax5(ls);25. 26. 答案:(lt=st.subLis(1, lst.sz().ge(0); b.et(, );8矩形交并集 在编写图形界面软件的时候,经常会遇到处理两个矩形的关系。 如图【.jpg】所示,矩形的交集指的是:两个矩形重叠区的矩形,当然也可能不存在(参看【2.jg】)。两个矩形的并集指的是:能包含这两个矩形的最小矩形,它一定是存在的。 本题目的要求就是:由用户输入两个矩形的坐标,程序输出它们的交集和并集矩形。 矩形坐标的输入
8、格式是输入两个对角点坐标,注意,不保证是哪个对角,也不保证顺序(你可以体会一下,在桌面上拖动鼠标拉矩形,个方向都可以的)。 输入数据格式: 1,y1,x,y x1,y,x,y2 数据共两行,每行表示一个矩形。每行是两个点的坐标。坐标在左,y坐标在右。坐标系统是:屏幕左上角为(,0),x坐标水平向右增大;y坐标垂直向下增大。 要求程序输出格式: x1,1,长度,高度 1,,长度,高度 也是两行数据,分别表示交集和并集。如果交集不存在,则输出“不存在”前边两项是左上角的坐标。后边是矩形的长度和高度。例如,用户输入:100,20,00,50,10,0,300则程序输出:150,10,150,700,
9、00,20,00例如,用户输入:10,,20,30,30,40,0则程序输出:不存在1,10,30,3图.jpg图2.p 【图1.jpg】 【图2.pg】 vawplanc1. uicstacvodmain(Sigag)2. 3. Scannersc=ewcannr(Sytem.in);4. 5. Rectgler1=ull;6. Retangler2=l;7. while(true)8. 9. r=getMyRectangle(sc.nextLin();10. r2gtMyRecangl(scnextine();11. 12. Recangleitesect=r.intersectin(2)
10、;13. if(itrsect.with=0)14. 15. e.uintln(不存在交集);16. ele17. 18. Syste.ut.rintln(intesct.,+interect.y+,19. inersect.wdth+,20. +intersect.height);21. 22. 23. Rectanglenin=r1unin(r2);24. 25. Systeout.intln(unon.+,+unio.y+,26. +unin.widt+,+uineght);27. 28. 29. 30. 31. publcsticectanglgetMyectngle(Stings)3
11、2. 33. Sringps=sl(,);34. ntt=newin;35. for(iti=;t2)40. 41. nttp=0;42. t=t2;43. t2=tep;44. 45. if(t3)46. 47. nttept1;48. 1=3;49. t3=te;50. 51. 52. eturnnewRecanl(t0,1,t20,t3-t1);53. .1加减得到10 匪警请拨10,即使手机欠费也可拨通! 为了保障社会秩序,保护人民群众生命财产安全,警察叔叔需要与罪犯斗智斗勇,因而需要经常性地进行体力训练和智力训练! 某批警察叔叔正在进行智力训练: 1 2 4 67 8 9 110;
12、请看上边的算式,为了使等式成立,需要在数字间填入加号或者减号(可以不填,但不能填入其它符号)。之间没有填入符号的数字组合成一个数,例如:12+34+56+7-8+9就是一种合格的填法;123+45+6-89是另一个可能的答案。 请你利用计算机的优势,帮助警察叔叔快速找到所有答案。 每个答案占一行。形如: 2+34+56+7-89 13+4+5+67-8 . 已知的两个答案可以输出,但不计分。各个答案的前后顺序不重要。javiewplincopy1. ulcsticodn(Stingags)2. 3. fu(8,);4. 5. 6. ulicsttioidfunc(itn,Stringops)7
13、. 8. i(n=0)9. 10. Strgre=;11. for(inti=0;iops.length();i+)12. 13. res+=op.cart()+Sigvle(i2);14. 15. res=es.replace(,);16. ops=opsrplacll(,);17. intnum=newint9;18. intem0;19. ntne=0;20. fr(inti=0;ires.len();i+)21. 22. if(rescha(i)=+|chart()=-)23. 24. numnen=Ingr.pasInt(ssubstrng(tem,i);25. emp1;26. nlen+;27. 28. 29. umnlen=ntge.seI(ssubstrng(tep));30. itsum
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2