竞赛java编程题50题(有答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
竞赛java编程题50题(有答案)
【程序1】
题目:经典问题:有一对兔子。
从出生后的第三个月开始,他们每个月生一对兔子。
当小兔子长到第三个月时,它们每个月都会产下另一对兔子。
如果兔子没有死,每个月的兔子总数是多少//这是一个斐波拉契序列问题
publicclasslianxi01{
publicstaticvoidmain(字符串[]args){
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(\第\个月的兔子对数:\}}}
[程序2]
题目:判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去掉2到sqrt(这个数)。
如果它可以被除,它表明这个数不是质数,相反,它是质数。
公共课联席02{
publicstaticvoidmain(string[]args){intcount=0;
对于(inti=101;i<200;i+=2){booleanb=false;
for(intj=2;j<=math.sqrt(i);j++){
如果(i%j==0){b=false;break;}else{b=true;}
if(b==true){count++;system.out.println(i);}}
系统出来Println(\素数为:\}
}
[程序3]
题目:打印出所有的\水仙花数\,所谓\水仙花数\是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个\水仙花数\,因为153=1的三次方+5的三次方+3的三次方。
公共课联席03{
publicstaticvoidmain(string[]args){intb1,b2,b3;
对于(intm=101;m<1000;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)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能除以K,则使用K+1作为K的值,并重复第一步。
importjava。
util.*;
publicclasslianxi04{
publicstaticvoidmain(字符串[]args){
scanners=newscanner(system.in);
系统出来打印(\请键入一个正整数:\INTN=s.nextint();intk=2;
system.out.print(n+\while(k<=n){
如果(k==n){system.out.println(n);break;}
elseif(n%k==0){system.out.print(k+\elsek++;}}}
[程序5]
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用a表示,60-89
分之间的用b表示,60分以下的用c表示。
importjava.util.*;publicclasslianxi05{
publicstaticvoidmain(string[]args){intx;
chargrade;
扫描器=新闻扫描程序(system.in);系统出来打印(\请输入分数:\x=s.nextint ();等级=x>=90?“a':x>=60?'b'
:'c';
系统出来Println(\level:\
}}
[程序6]
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
/**在循环中,只要除数不等于0,就用较大的数除以较小的数,取较小的数作为下一个循环的较大数,所得余数作为下一个循环的较小数。
这样,循环返回较大的数字,直到
较小数字的值为0。
这个数字是最大公约数,最小公倍数是两个数字除以最大公约数*的乘积。
util.*;
publicclasslianxi06{publicstaticvoidmain(string[]args){inta,b,m;
扫描器=新闻扫描程序(system.in);系统出来打印(\键入一个整数:
\a=s.nextint();
system.out.print(\再键入一个整数:\b=s.nextint();
deffcd=newdeff();m=cd。
deff(a,b);
intn=a*b/m;
系统出来Println(\最大公因数:\system.Out.Println(\最小公倍数:\}
classdeff{
publicintdeff(intx,inty){intt;
if(x<y){t=x;x=y;y=t;}
而(y!=0){if(x==y)returnx;else{intk=x%y;x=y;y=k;}
returnx;}
}
【程序7】
标题:输入一行字符,并计算英文字母、空格、数字和其他字符的数量。
importjava。
util.*;公共课联席会议07{
publicstaticvoidmain(string[]args){intdigital=0;intcharacter=0;intother=0;intb lank=0;
char[]ch=null;
scannersc=newscanner(system.in);strings=sc.nextline();ch=s.tochararray();for(i
nti=0;i='0'&&ch<='9'){
数字++;
}elseif((ch>='a'&&ch<='z')||ch>'a'&&ch<='z'){character++;}elseif(ch==''){b lank++;
}else{other++;}
system.out.println(\数字个数:\
系统出来Println(\英文字母数:\system.Out.Println(\空格数:
\system.Out.Println(\其他字符数:\})
【程序8】
标题:查找s=a+AA+AAA+AAAA+AA a的值,其中a是一个数字。
例如,
2+22+222+2222+2222(此时总共添加了5个数字),几个数字的添加由键盘控制。
importjava。
util.*;公共课联席08{
publicstaticvoidmain(string[]args){longa,b=0,sum=0;
扫描器=新闻扫描程序(system.in);系统出来打印(\输入数字A:\A=s.nextint()的值;
system.out.print(\输入相加的项数:\intn=s.nextint();inti=0;
而(i<n){b=b+a;
sum=sum+b;a=a*10;++i;}
系统出来println(和);}
【程序9】
标题:如果一个数字正好等于其因子之和,则该数字称为\完美\。
例如,6=1+2+3程
序可以找到1000以内的所有完井。
publicclasslianxi09{
publicstaticvoidmain(字符串[]args){
system.out.println(\到1000的完数有:\for(inti=1;i<1000;i++){intt=0;
对于(intj=1;j<=i/2;j++){if(i%j==0){t=t+j;}
}
如果(t==i){
system.out.print(i+\\}
}}
【程序10】题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?publicclasslianxi10{
publicstaticvoidmain(string[]args){doubleh=100,s=100;for(inti=1;i<10;i++){s=s+h;h=h/2;
}
系统出来Println(\distance:\system.Out.Println(\response height:\}
}
11.问题:可以重复多少个四位数?多少钱?公共课联席会议11{。