您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > JAVA编程题目(含解答)
1【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....importjava.util.Scanner;publicclassrabbit{publicstaticvoidmain(String[]args){intnumber=1,month;inttmp1=1,tmp2=1;Scannersc=newScanner(System.in);System.out.println(请输入第几个月:);month=sc.nextInt();for(inti=1;i=month;i++){if(i=2)number=1;else{number=tmp1+tmp2;//前两个月兔子数之和tmp2=tmp1;//前第二个月tmp1=number;//前一个月}System.out.println(第+i+个月的兔子数是:+number);【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。publicclassDemo01{publicstaticvoidmain(String[]args){intcount=0;for(inti=101;i200;i+=2){booleanb=false;for(intj=2;j=Math.sqrt(i);j++){if(i%j==0){b=false;break;}else{b=true;}}if(b==true){count++;System.out.println(i);}2}System.out.println(素数个数是:+count);}}【程序3】题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。publicclassDaffodilsNumber{/***【程序3】题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:*153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。1.程序分析:*利用for循环控制100-999个数,每个数分解出个位,十位,百位。*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubDaffodilNumberdn;intct=0;for(inti=100;i1000;i++){dn=newDaffodilNumber(i);//System.out.println(dn);if(dn.isDaffodilNumber()){ct++;System.out.println(i+=+dn);}}System.out.println(==============================);System.out.println(100~999之间一共有:+ct+个水仙花数。);}}classDaffodilNumber{privateintbw;privateintsw;privateintgw;privateintnum;publicDaffodilNumber(intnum){3this.num=num;this.bw=num/100;this.sw=(num-bw*100)/10;this.gw=num%10;}publicbooleanisDaffodilNumber(){if(num==bw*bw*bw+sw*sw*sw+gw*gw*gw)returntrue;elsereturnfalse;}publicStringtoString(){returnbw+*+bw+*+bw+++sw+*+sw+*+sw+++gw+*+gw+*+gw;}}【程序4】题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。importjava.util.Scanner;publicclassPrimeSplit{/***【程序4】题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。*程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:*(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。*(2)如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。*(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubScannersc=newScanner(System.in);4intn;while(true){System.out.println(请输入一个大于1的整数:);n=sc.nextInt();if(n1)break;}System.out.print(n+=);inti=2;Stringstr=;while(i=n){if(n%i==0&&isPrime(i)){str+=*+i;n/=i;i=2;continue;}i++;}System.out.println(str.substring(1));}privatestaticbooleanisPrime(intn){for(inti=2;in;i++){if(n%i==0){returnfalse;}}returntrue;}}【程序5】题目:利用条件运算符的嵌套来完成此题:学习成绩=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。1.程序分析:(ab)?a:b这是条件运算符的基本例子。importjava.util.Scanner;publicclassPerformanceRating{/***【程序5】题目:利用条件运算符的嵌套来完成此题:学习成绩=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。5*1.程序分析:(ab)?a:b这是条件运算符的基本例子。*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubScannersc=newScanner(System.in);floatf;while(true){System.out.println(请输入一个成绩:);f=sc.nextFloat();if(f=0&&f=100)break;}System.out.print(成绩为:+f+的,其等级是:);System.out.println((f=90?A:(f60?C:B))+。);}}【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。1.程序分析:利用辗除法。importjava.util.Scanner;publicclassDivisorMultiple{/***【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。1.程序分析:利用辗除法。*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubintm,n,c;Scannersc=newScanner(System.in);while(true){System.out.println(请输入第一个正整数:);m=sc.nextInt();if(m0)break;}while(true){6System.out.println(请输入第二个正整数:);n=sc.nextInt();if(n0)break;}c=gcd(m,n);System.out.println([+m+,+n+]=+c);System.out.println((+m+,+n+)=+m*n/c);}privatestaticintgcd(inta,intb){//使用辗转相除法intr=a%b;if(r==0){returnb;}else{returngcd(b,r);}}}法二:importjava.util.Scanner;publicclassMultipleDivisor{/***【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。1.程序分析:利用辗除法。*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubintm,n,c;Scannersc=newScanner(System.in);while(true){System.out.println(请输入第一个正整数:);m=sc.nextInt();if(m0)break;}while(true){System.out.println(请输入第二个正整数:);7n=sc.nextInt();if(n0)break;}c=gcd(m,n);System.out.println([+m+,+n+]=+c);System.out.println((+m+,+n+)=+m*n/c);}privatestaticintgcd(inta,intb){//使用辗转相减法完成的if(ab){inttmp;tmp=a;a=b;b=tmp;}if(a%b==0)returnb;elsereturngcd(b,a-b);}}【程序7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。1.程序分析:利用while语句,条件为输入的字符不为'\n'.importjava.io.BufferedReader;importjava.io.InputStreamReader;publicclassJudgeBlankLetterEtc{/***【程序7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。*1.程序分析:利用while语句,条件为输入的字符不为'\n'.**@throwsException*/publicstaticvoidmain(String[]args)throwsException{//TODOAuto-generatedmethodstubBufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));8System.out.println(请输入一串字符串(可包含字母、数字、空格及其它字符):);StringBuffersb=newStringBuffer(br.readLine());intletterCount=0;intblankCount=0;intnumberCount=0;intotherCount=0;for(inti=0;isb.length();i++){charc=sb.charAt(i);if(('a'=c&&c='z')||('A'=c&&c='Z')){letterCount++;}elseif('0'=c&&c='9'){numberCount++;}elseif(''==c)
本文标题:JAVA编程题目(含解答)
链接地址:https://www.777doc.com/doc-5325800 .html