您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 创业/孵化 > 蓝桥杯第四届javaB组题
1、标题:世纪末的星期曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。还有人称今后的某个世纪末的12月31日,如果是星期一则会....有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!!于是,“谣言制造商”又修改为星期日......1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)?请回答该年份(只写这个4位整数,不要写12月31等多余信息)2、标题:马虎的算式小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。有一次,老师出的题目是:36x495=?他却给抄成了:396x45=?但结果却很戏剧性,他的答案竟然是对的!!因为36*495=396*45=17820类似这样的巧合情况可能还有很多,比如:27*594=297*54假设abcde代表1~9不同的5个数字(注意是各不相同的数字,且不含0)能满足形如:ab*cde=adb*ce这样的算式一共有多少种呢?请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。答案直接通过浏览器提交。注意:只提交一个表示最终统计种类数的数字,不要提交解答过程或其它多余的内容。3、标题:振兴中华小明参加了学校的趣味运动会,其中的一个项目是:跳格子。地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg)从我做起振我做起振兴做起振兴中起振兴中华比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。要求跳过的路线刚好构成“从我做起振兴中华”这句话。请你帮助小明算一算他一共有多少种可能的跳跃路线呢?答案是一个整数,请通过浏览器直接提交该数字。注意:不要提交解答过程,或其它辅助说明类的内容。4、标题:黄金连分数黄金分割数0.61803...是个无理数,这个常数十分重要,在许多工程问题中会出现。有时需要把这个数字求得很精确。对于某些精密工程,常数的精度很重要。也许你听说过哈勃太空望远镜,它首次升空后就发现了一处人工加工错误,对那样一个庞然大物,其实只是镜面加工时有比头发丝还细许多倍的一处错误而已,却使它成了“近视眼”!!言归正传,我们如何求得黄金分割数的尽可能精确的值呢?有许多方法。比较简单的一种是用连分数:1黄金数=---------------------11+-----------------11+-------------11+---------1+...这个连分数计算的“层数”越多,它的值越接近黄金分割数。请你利用这一特性,求出黄金分割数的足够精确值,要求四舍五入到小数点后100位。小数点后3位的值为:0.618小数点后4位的值为:0.6180小数点后5位的值为:0.61803小数点后7位的值为:0.6180340(注意尾部的0,不能忽略)你的任务是:写出精确到小数点后100位精度的黄金分割值。注意:尾数的四舍五入!尾数是0也要保留!显然答案是一个小数,其小数点后有100位数字,请通过浏览器直接提交该数字。注意:不要提交解答过程,或其它辅助说明类的内容。5、标题:有理数类有理数就是可以表示为两个整数的比值的数字。一般情况下,我们用近似的小数表示。但有些时候,不允许出现误差,必须用两个整数来表示一个有理数。这时,我们可以建立一个“有理数类”,下面的代码初步实现了这个目标。为了简明,它只提供了加法和乘法运算。classRational{privatelongra;privatelongrb;privatelonggcd(longa,longb){if(b==0)returna;returngcd(b,a%b);}publicRational(longa,longb){ra=a;rb=b;longk=gcd(ra,rb);if(k1){//需要约分ra/=k;rb/=k;}}//加法publicRationaladd(Rationalx){return________________________________________;//填空位置}//乘法publicRationalmul(Rationalx){returnnewRational(ra*x.ra,rb*x.rb);}publicStringtoString(){if(rb==1)return+ra;returnra+/+rb;}}使用该类的示例:Rationala=newRational(1,3);Rationalb=newRational(1,6);Rationalc=a.add(b);System.out.println(a+++b+=+c);请分析代码逻辑,并推测划线处的代码,通过网页提交注意:仅把缺少的代码作为答案,千万不要填写多余的代码、符号或说明文字!!6、标题:三部排序一般的排序有许多经典算法,如快速排序、希尔排序等。但实际应用时,经常会或多或少有一些特殊的要求。我们没必要套用那些经典算法,可以根据实际情况建立更好的解法。比如,对一个整型数组中的数字进行分类排序:使得负数都靠左端,正数都靠右端,0在中部。注意问题的特点是:负数区域和正数区域内并不要求有序。可以利用这个特点通过1次线性扫描就结束战斗!!以下的程序实现了该目标。staticvoidsort(int[]x){intp=0;intleft=0;intright=x.length-1;while(p=right){if(x[p]0){intt=x[left];x[left]=x[p];x[p]=t;left++;p++;}elseif(x[p]0){intt=x[right];x[right]=x[p];x[p]=t;right--;}else{_________________________;//代码填空位置}}}如果给定数组:25,18,-2,0,16,-5,33,21,0,19,-16,25,-3,0则排序后为:-3,-2,-16,-5,0,0,0,21,19,33,25,16,18,25请分析代码逻辑,并推测划线处的代码,通过网页提交注意:仅把缺少的代码作为答案,千万不要填写多余的代码、符号或说明文字!!7、标题:错误票据某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大和最小号。要求程序首先输入一个整数N(N100)表示后面数据行数。接着读入N行数据。每行数据长度不等,是用空格分开的若干个(不大于100个)正整数(不大于100000)每个整数代表一个ID号。要求程序输出1行,含两个整数mn,用空格分隔。其中,m表示断号ID,n表示重号ID例如:用户输入:256811910129则程序输出:79再例如:用户输入:6164178108109180155141159104182179118137184115124125129168196172189127107112192103131133169158128102110148139157140195197185152135106123173122136174191145116151143175120161134162190149138142146199126165156153193144166170121171132101194187188113130176154177120117150114183186181100163160167147198111119则程序输出:105120请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意:不要使用package语句。不要使用jdk1.6及以上版本的特性。注意:主类的名字必须是:Main,否则按无效代码处理。8、标题:幸运数幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的“筛法”生成。首先从1开始写出自然数1,2,3,4,5,6,....1就是第一个幸运数。我们从2这个数开始。把所有序号能被2整除的项删除,变为:1_3_5_7_9....把它们缩紧,重新记序,为:13579....。这时,3为第2个幸运数,然后把所有能被3整除的序号位置的数删去。注意,是序号位置,不是那个数本身能否被3整除!!删除的应该是5,11,17,...此时7为第3个幸运数,然后再删去序号位置能被7整除的(19,39,...)最后剩下的序列类似:1,3,7,9,13,15,21,25,31,33,37,43,49,51,63,67,69,73,75,79,...本题要求:输入两个正整数mn,用空格分开(mn1000*1000)程序输出位于m和n之间的幸运数的个数(不包含m和n)。例如:用户输入:120程序输出:5例如:用户输入:3069程序输出:8请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意:不要使用package语句。不要使用jdk1.6及以上版本的特性。注意:主类的名字必须是:Main,否则按无效代码处理。9、标题:带分数100可以表示为带分数的形式:100=3+69258/714还可以表示为:100=82+3546/197注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。类似这样的带分数,100有11种表示法。题目要求:从标准输入读入一个正整数N(N1000*1000)程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。注意:不要求输出每个表示,只统计有多少表示法!例如:用户输入:100程序输出:11再例如:用户输入:105程序输出:6请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意:不要使用package语句。不要使用jdk1.6及以上版本的特性。注意:主类的名字必须是:Main,否则按无效代码处理。10、标题:连号区间数小明这些天一直在思考这样一个奇怪而有趣的问题:在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间[L,R]里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是那么简单了,现在小明需要你的帮助。输入格式:第一行是一个正整数N(1=N=50000),表示全排列的规模。第二行是N个不同的数字Pi(1=Pi=N),表示这N个数字的某一全排列。输出格式:输出一个整数,表示不同连号区间的数目。示例:用户输入:43241程序应输出:7用户输入:534251程序应输出:9解释:第一个用例中,有7个连号区间分别是:[1,1],[1,2],[1,3],[1,4],[2,2],[3,3],[4,4]第二个用例中,有9个连号区间分别是:[1,1],[1,2],[1,3],[1,4],[1,5],[2,2],[3,3],[4,4],[5,5]请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意:不要使用package语句。不要使用jdk1.6及以上版本的特性。注意:主类的名字必须是:Main,否则按无效代码处理。
本文标题:蓝桥杯第四届javaB组题
链接地址:https://www.777doc.com/doc-5063677 .html