非常经典的JAVA编程题全集题及答案.pdf
《非常经典的JAVA编程题全集题及答案.pdf》由会员分享,可在线阅读,更多相关《非常经典的JAVA编程题全集题及答案.pdf(31页珍藏版)》请在冰豆网上搜索。
![非常经典的JAVA编程题全集题及答案.pdf](https://file1.bdocx.com/fileroot1/2022-10/9/fa9e9c43-da67-4144-9b22-aa4144685cc7/fa9e9c43-da67-4144-9b22-aa4144685cc71.gif)
【程序1】题目:
古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
/这是一个菲波拉契数列问题publicclasslianxi01publicstaticvoidmain(Stringargs)System.out.println(第1个月的兔子对数:
1);System.out.println(第2个月的兔子对数:
1);intf1=1,f2=1,f,M=24;for(inti=3;i=M;i+)f=f2;f2=f1+f2;f1=f;System.out.println(第+i+个月的兔子对数:
+f2);【程序2】题目:
判断101-200之间有多少个素数,并输出所有素数。
程序分析:
判断素数的方法:
用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
publicclasslianxi02publicstaticvoidmain(Stringargs)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;elseb=true;if(b=true)count+;System.out.println(i);System.out.println(素数个数是:
+count);【程序3】题目:
打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个水仙花数,因为153=1的三次方5的三次方3的三次方。
publicclasslianxi03publicstaticvoidmain(Stringargs)intb1,b2,b3;for(intm=101;m1000;m+)b3=m/100;b2=m%100/10;b1=m%10;if(b3*b3*b3+b2*b2*b2+b1*b1*b1)=m)System.out.println(m+是一个水仙花数);【程序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.*;publicclasslianxi04publicstaticvoidmain(Stringargs)Scanners=newScanner(System.in);System.out.print(请键入一个正整数:
);intn=s.nextInt();intk=2;System.out.print(n+=);while(k=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
importjava.util.*;publicclasslianxi05publicstaticvoidmain(Stringargs)intx;chargrade;Scanners=newScanner(System.in);System.out.print(请输入一个成绩:
);x=s.nextInt();grade=x=90?
A:
x=60?
B:
C;System.out.println(等级为:
+grade);【程序6】题目:
输入两个正整数m和n,求其最大公约数和最小公倍数。
/*在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。
*/importjava.util.*;publicclasslianxi06publicstaticvoidmain(Stringargs)inta,b,m;Scanners=newScanner(System.in);System.out.print(键入一个整数:
);a=s.nextInt();System.out.print(再键入一个整数:
);b=s.nextInt();deffcd=newdeff();m=cd.deff(a,b);intn=a*b/m;System.out.println(最大公约数:
+m);System.out.println(最小公倍数:
+n);classdeffpublicintdeff(intx,inty)intt;if(xy)t=x;x=y;y=t;while(y!
=0)if(x=y)returnx;elseintk=x%y;x=y;y=k;returnx;【程序7】题目:
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
importjava.util.*;publicclasslianxi07publicstaticvoidmain(Stringargs)intdigital=0;intcharacter=0;intother=0;intblank=0;charch=null;Scannersc=newScanner(System.in);Strings=sc.nextLine();ch=s.toCharArray();for(inti=0;i=0&ch=a&chA&ch=Z)character+;elseif(ch=)blank+;elseother+;System.out.println(数字个数:
+digital);System.out.println(英文字母个数:
+character);System.out.println(空格个数:
+blank);System.out.println(其他字符个数:
+other);【程序8】题目:
求s=a+aa+aaa+aaaa+aa.a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
importjava.util.*;publicclasslianxi08publicstaticvoidmain(Stringargs)longa,b=0,sum=0;Scanners=newScanner(System.in);System.out.print(输入数字a的值:
);a=s.nextInt();System.out.print(输入相加的项数:
);intn=s.nextInt();inti=0;while(in)b=b+a;sum=sum+b;a=a*10;+i;System.out.println(sum);【程序9】题目:
一个数如果恰好等于它的因子之和,这个数就称为完数。
例如6=123.编程找出1000以内的所有完数。
publicclasslianxi09publicstaticvoidmain(Stringargs)System.out.println(1到1000的完数有:
);for(inti=1;i1000;i+)intt=0;for(intj=1;j=i/2;j+)if(i%j=0)t=t+j;if(t=i)System.out.print(i+);【程序10】题目:
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?
第10次反弹多高?
publicclasslianxi10publicstaticvoidmain(Stringargs)doubleh=100,s=100;for(inti=1;i10;i+)s=s+h;h=h/2;System.out.println(经过路程:
+s);System.out.println(反弹高度:
+h/2);【程序11】题目:
有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?
都是多少?
publicclasslianxi11publicstaticvoidmain(Stringargs)intcount=0;for(intx=1;x5;x+)for(inty=1;y5;y+)for(intz=1;z0&x10&x20&x40&x60&x100)y=20*0.175+40*0.08+40*0.015+(x-100)*0.01;System.out.println(应该提取的奖金是+y+万);【程序13】题目:
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
publicclasslianxi13publicstaticvoidmain(Stringargs)for(intx=1;x100000;x+)if(Math.sqrt(x+100)%1=0)if(Math.sqrt(x+268)%1=0)System.out.println(x+加100是一个完全平方数,再加168又是一个完全平方数);/*按题意循环应该从-100开始(整数包括正整数、负整数、零),这样会多一个满足条件的数-99。
但是我看到大部分人解这道题目时都把题中的“整数”理解成正整数,我也就随大流了。
*/【程序14】题目:
输入某年某月某日,判断这一天是这一年的第几天?
importjava.util.*;publicclasslianxi14publicstaticvoidmain(Stringargs)intyear,month,day;intdays=0;intd=0;inte;inputfymd=newinput();doe=0;System.out.print(输入年:
);year=fymd.input();System.out.print(输入月:
);month=fymd.input();System.out.print(输入天:
);day=fymd.input();if(year0|month12|day31)System.out.println(输入错误,请重新输入!
);e=1;while(e=1);for(inti=1;iy)intt=x;x=y;y=t;if(xz)intt=x;x=z;z=t;if(yz)intt=y;y=z;z=t;System.out.println(三个数字由小到大排列为:
+x+y+z);classinputpublicintinput()intvalue=0;Scanners=newScanner(System.in);value=s.nextInt();returnvalue;【程序16】题目:
输出9*9口诀。
publicclasslianxi16publicstaticvoidmain(Stringargs)for(inti=1;i10;i+)for(intj=1;j=i;j+)System.out.print(j+*+i+=+j*i+);if(j*i10)System.out.print();System.out.println();【程序17】题目:
猴子吃桃问题:
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又