蓝桥杯经典例题Java语言实现.docx
《蓝桥杯经典例题Java语言实现.docx》由会员分享,可在线阅读,更多相关《蓝桥杯经典例题Java语言实现.docx(48页珍藏版)》请在冰豆网上搜索。
![蓝桥杯经典例题Java语言实现.docx](https://file1.bdocx.com/fileroot1/2023-1/12/57893436-a568-4f2f-934b-3654ad2d053b/57893436-a568-4f2f-934b-3654ad2d053b1.gif)
蓝桥杯经典例题蓝桥杯经典例题Java语言实现语言实现蓝桥杯经典例题(Java语言实现)1.Fibonacci数列importjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstubScannersca=newScanner(System.in);inti=sca.nextInt();ints=newinti+1;s1=s2=1;for(intj=3;j=i;j+)sj=(sj-1+sj-2)%10007;System.out.println(si);2.圆的面积importjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)Scannersca=newScanner(System.in);intr=sca.nextInt();doublePI=Math.PI;doubleS=PI*r*r;Stringresult=String.format(%.7f,S);/四舍五入System.out.println(result);result=String.format(%.8f,S).substring(0,(S+).indexOf(.)+8);/不进行四舍五入,现取9位小数,再截取8位System.out.println(result);递归实现:
importjava.util.Scanner;publicclassMainstaticintsum=0;publicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstubScannersca=newScanner(System.in);intn=sca.nextInt();System.out.println(f(n);privatestaticintf(intn)/TODOAuto-generatedmethodstubif(n=1)return1;returnn+f(n-1);4.闰年判断当以下情况之一满足时,这一年是闰年:
1.年份是4的倍数而不是100的倍数;2.年份是400的倍数。
其他的年份都不是闰年。
样例输入2013样例输出no样例输入2016样例输出yes数据规模与约定1990=y=2050。
importjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstubScannersc=newScanner(System.in);intyear=sc.nextInt();if(year%4=0&year%100!
=0)System.out.println(yes);elseif(year%400=0)System.out.println(yes);elseSystem.out.println(no);5.01字串importjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstubfor(inti=0;i2;i+)for(intj=0;j2;j+)for(intk=0;k2;k+)for(intl=0;l2;l+)for(intm=0;m2;m+)StringBufferstr=newStringBuffer();System.out.println(str.append(i).append(j).append(k).append(l).append(m);6.字母图形importjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)Scannersc=newScanner(System.in);intn=sc.nextInt();intm=sc.nextInt();charcha=newcharm+1;for(inti=1;i=m;i+)chai=(char)(A+i-1);for(inti=1;i=n;i+)for(intj=1;j=j)chaj=(char)(chaj+1);elsechaj=(char)(chaj-1);System.out.println();6.数列特征importjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstubScannersc=newScanner(System.in);intn=sc.nextInt();inta=newintn;for(inti=0;ia.length;i+)ai=sc.nextInt();java.util.Arrays.sort(a);System.out.println(an-1);System.out.println(a0);intsum=0;for(inti=0;ia.length;i+)sum+=ai;System.out.println(sum);7.查找整数importjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstubScannersc=newScanner(System.in);intn=sc.nextInt();inta=newintn;for(inti=0;ia.length;i+)ai=sc.nextInt();intkey=sc.nextInt();intjie=-2;for(inti=0;ia.length;i+)if(key=ai)jie=i;break;System.out.println(jie+1)8.杨辉三角importjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstubScannersc=newScanner(System.in);intn=sc.nextInt();longt1=System.currentTimeMillis();inta=newintnn;for(inti=0;in;i+)for(intj=0;ji+1;j+)if(i=0|i=j|j=0)aij=1;elseaij=ai-1j+ai-1j-1;System.out.print(aij+);System.out.println();longt2=System.currentTimeMillis();9.特殊的数字importjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstublongt1=System.currentTimeMillis();for(intn=100;n999;n+)Stringstr=String.valueOf(n);charch=str.toCharArray();intin=newintch.length;for(inti=0;i3;i+)ini=Integer.parseInt(chi+);if(in0*in0*in0+in1*in1*in1+in2*in2*in2=n)System.out.println(n);longt2=System.currentTimeMillis();/System.out.println(t2-t1);10.回文数importjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstublongt1=System.currentTimeMillis();for(inti=1;i=9;i+)for(intj=0;j=9;j+)StringBufferstr=newStringBuffer();str=str.append(i).append(j).append(j).append(i);System.out.println(str);longt2=System.currentTimeMillis();/System.out.println(t2-t1);11.特殊回文数importjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstubScannersca=newScanner(System.in);intin=sca.nextInt();for(inti=1;i10;i+)for(intj=0;j10;j+)for(intk=0;k10;k+)if(i*2+j*2+k=in)System.out.println(i*10000+j*1000+k*100+j*10+i);for(inti=1;i10;i+)for(intj=0;j10;j+)for(intk=0;k0)intt=in%16;switch(t)case0:
case1:
case2:
case3:
case4:
case5:
case6:
case7:
case8:
case9:
s.append(t+);break;case10:
s.append(A);break;case11:
s.append(B);break;case12:
s.append(C);break;case13:
s.append(D);break;case14:
s.append(E);break;case15:
s.append(F);break;in=in/16;System.out.println(s.reverse();13.十六进制转十进制importjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstubScannersca=newScanner(System.in);Stringstr=sca.nextLine();charch=str.toCharArray();longsum=0;intl=ch.length;for(inti=0;i=A)sum=(long)(sum+Math.pow(16,l-i-1)*(chi-A+10);elsesum=(long)(sum+Math.pow(16,l-i-1)*Integer.parseInt(chi+);System.out.println(sum);14.数列排序importjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstubScannersc=newScanner(System.in);intsum=sc.nextInt();inta=newintsum;for(inti=0;isum;i+)ai=sc.nextInt();java.util.Arrays.sort(a);for(inti=0;ia.length;i+)System.out.print(ai+);15.2的次幂表示锦囊1锦囊2锦囊3importjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstubScannersca=newScanner(System.in);inti=sca.nextInt();f(i);privatestaticvoidf(intx)/TODOAuto-generatedmethodstubif(x=0)return;if(x=1)System.out.print(2(0);return;if(x=2)System.out.print
(2);return;if(x=3)System.out.print(2+2(0);return;intjie=0;for(inti=0;ix)jie=i-1;break;System.out.print(2();f(jie);System.out.print();inty=x-(int)(Math.pow(2,jie);if(y!
=0)System.out.print(+);f(y);return;16.Anagrams问题锦囊1锦囊2锦囊3问题描述Anagrams指的是具有如下特性的两个单词:
在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。
例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。
编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。
每一个单词的长度不会超过80个字符,而且是大小写无关的。
输入格式:
输入有两行,分别为两个单词。
输出格式:
输出只有一个字母Y或N,分别表示Yes和No。
输入输出样例样例输入UnclearNuclear样例输出Yimportjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstubScannersca=newScanner(System.in);Stringstr1=sca.nextLine();Stringstr2=sca.nextLine();str1=str1.toLowerCase();str2=str2.toLowerCase();charch1=str1.toCharArray();charch2=str2.toCharArray();java.util.Arrays.sort(ch1);java.util.Arrays.sort(ch2);Stringstr3=newString(ch1);Stringstr4=newString(ch2);if(str3.equals(str4)System.out.println(Y);elseSystem.out.println(N);17.矩阵乘法时间限制:
1.0s内存限制:
512.0MB锦囊1锦囊2锦囊3问题描述输入两个矩阵,分别是m*s,s*n大小。
输出两个矩阵相乘的结果。
输入格式第一行,空格隔开的三个正整数m,s,n(均不超过200)。
接下来m行,每行s个空格隔开的整数,表示矩阵A(i,j)。
接下来s行,每行n个空格隔开的整数,表示矩阵B(i,j)。
输出格式m行,每行n个空格隔开的整数,输出相乘後的矩阵C(i,j)的值。
样例输入23210-111-3031231样例输出-32-82提示矩阵C应该是m行n列,其中C(i,j)等于矩阵A第i行行向量与矩阵B第j列列向量的内积。
例如样例中C(1,1)=(1,0,-1)*(0,1,3)=1*0+0*1+(-1)*3=-3importjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstubScannersca=newScanner(System.in);intm=sca.nextInt();ints=sca.nextInt();intn=sca.nextInt();inta=newintm+1s+1;intb=newints+1n+1;for(inti=1;im+1;i+)for(intj=1;js+1;j+)aij=sca.nextInt();for(inti=1;is+1;i+)for(intj=1;jn+1;j+)bij=sca.nextInt();intsum=0;for(inti=1;im+1;i+)for(intj=1;jn+1;j+)sum=0;for(intk=1;ks+1;k+)sum=sum+aik*bkj;System.out.print(sum+);System.out.println();18.大小写转换时间限制:
1.0s内存限制:
512.0MB锦囊1锦囊2锦囊3问题描述编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写字母变成小写,小写字母变成大写,然后把这个新的字符串输出。
输入格式:
输入一个字符串,而且这个字符串当中只包含英文字母,不包含其他类型的字符,也没有空格。
输出格式:
输出经过转换后的字符串。
输入输出样例样例输入AeDb样例输出aEdBimportjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstubScannersca=newScanner(System.in);Stringstr=sca.nextLine();charch=str.toCharArray();for(inti=0;i=A&chi=Z)chi=(char)(chi+32);elsechi=(char)(chi-32);for(inti=0;ich.length;i+)System.out.print(chi+);19.动态数组使用锦囊1锦囊2锦囊3从键盘读入n个整数,使用动态数组存储所读入的整数,并计算它们的和与平均值分别输出。
要求尽可能使用函数实现程序代码。
平均值为小数的只保留其整数部分。
样例输入534002样例输出91样例输入73275291样例输出294importjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstubScannersca=newScanner(System.in);intnum=sca.nextInt();inta=newintnum;for(inti=0;ia.length;i+)ai=sca.nextInt();intsum=0;for(inti=0;ia.length;i+)sum+=ai;intavg=sum/num;System.out.println(sum+avg);20.删除数组零元素锦囊1锦囊2锦囊3从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。
注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。
输出删除后数组中元素的个数并依次输出数组元素。
样例输入:
(输入格式说明:
5为输入数据的个数,34002是以空格隔开的5个整数)534002样例输出:
(输出格式说明:
3为非零数据的个数,342是以空格隔开的3个非零整数)3342样例输入70070090样例输出279样例输入3000样例输出0importjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstubScannersca=newScanner(System.in);intnum=sca.nextInt();inta=newintnum;for(inti=0;ia.length;i+)ai=sca.nextInt();intb=newintnum;intnu=0;for(inti=0;ia.length;i+)if(ai!
=0)bnu=ai;nu+;System.out.println(nu);for(inti=0;inu;i+)System.out.print(bi+);21.Torry的困惑(基本型)问题描述Torry从小喜爱数学。
一天,老师告诉他,像2、3、5、7这样的数叫做质数。
Torry突然想到一个问题,前10、100、1000、10000个质数的乘积是多少呢?
他把这个问题告诉老师。
老师愣住了,一时回答不出来。
于是Torry求助于会编程的你,请你算出前n个质数的乘积。
不过,考虑到你才接触编程不久,Torry只要你算出这个数模上50000的值。
输入格式仅包含一个正整数n,其中n=100000。
输出格式输出一行,即前n个质数的乘积模50000的值。
样例输入1样例输出2importjava.util.Scanner;publicclassMainpublicstaticvoidmain(Stringargs)Scannersca=newScanner(System.in);intn=sca.nextInt();intnum=0;intresult=1;inti=2;while(numn)if(whetherZhi(i)num+;result=(result*i)%50000;i+;System.out.println(result);privatestaticbooleanwhetherZhi(intx)/TODOAuto-generatedmethodstubfor(inti=2;ix;i+)if(x%i=0)returnfalse;returntrue;22.巧排螺旋阵从键盘输入一个整数(120)则以该数字为矩阵的大小,把1,2,3n*n的数字按照顺时针螺旋的形式填入其中。
例如:
输入数字2,则程序输出:
1243输入数字3,则程序输出:
123894765输入数字4,则程序输出:
123412131451116156