JAVA编程练习题.docx
《JAVA编程练习题.docx》由会员分享,可在线阅读,更多相关《JAVA编程练习题.docx(6页珍藏版)》请在冰点文库上搜索。
JAVA编程练习题
【程序1】
题目:
古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
//这是一个菲波拉契数列问题
publicclasslianxi01{
publicstaticvoidmain(String[]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("第"+i+"个月的兔子对数:
"+f2);
}
}
}
【程序2】
题目:
判断101-200之间有多少个素数,并输出所有素数。
程序分析:
判断素数的方法:
用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
publicclasslianxi02{
publicstaticvoidmain(String[]args){
intcount=0;
for(inti=101;i<200;i+=2){//101~200之间的素数
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);}
}
System.out.println("素数个数是:
"+count);
}
}
【程序3】
题目:
打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
publicclasslianxi03{
publicstaticvoidmain(String[]args){
intb1,b2,b3;
for(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+"是一个水仙花数");}
}
}
}
【程序6】
题目:
输入两个正整数m和n,求其最大公约数和最小公倍数。
/**在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。
*/
importjava.util.*;
public class lianxi06 {
publicstaticvoidmain(String[]args){
int a,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);
}
}
classdeff{
publicintdeff(intx,inty){
intt;
if(x t=x;
x=y;
y=t;
}
while(y!
=0){
if(x==y)returnx;
else{
intk=x%y;
x=y;
y=k;
}
}
returnx;
}
}
【程序9】
题目:
一个数如果恰好等于它的因子之和,这个数就称为"完数"。
例如6=1+2+3.编程 找出1000以内的所有完数。
publicclasslianxi09{
publicstaticvoidmain(String[]args){
System.out.println("1到1000的完数有:
");
for(inti=1;i<1000;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次反弹多高?
publicclasslianxi10{
publicstaticvoidmain(String[]args){
doubleh=100,s=100;
for(inti=1;i<10;i++){
s=s+h;
h=h/2;
}
System.out.println("经过路程:
"+s);
System.out.println("反弹高度:
"+h/2);
}
}
【程序15】
题目:
输入三个整数x,y,z,请把这三个数由小到大输出。
importjava.util.*;
publicclasslianxi15{
publicstaticvoidmain(String[]args){
inputfnc=newinput();
intx=0,y=0,z=0;
System.out.print("输入第一个数字:
");
x=fnc.input();
System.out.print("输入第二个数字:
");
y=fnc.input();
System.out.print("输入第三个数字:
");
z=fnc.input();
if(x>y){
intt=x;
x=y;
y=t;
}
if(x>z){
intt=x;
x=z;
z=t;
}
if(y>z){
intt=y;
y=z;
z=t;
}
System.out.println("三个数字由小到大排列为:
"+x+""+y+""+z);
}
}
classinput{
publicintinput(){
intvalue=0;
Scanners=newScanner(System.in);
value=s.nextInt();
returnvalue;
}
}
【程序16】
题目:
输出9*9口诀。
publicclasslianxi16{
publicstaticvoidmain(String[]args){
for(inti=1;i<10;i++){
for(intj=1;j<=i;j++){
System.out.print(j+"*"+i+"="+j*i+" ");
if(j*i<10){System.out.print("");}
}
System.out.println();
}
}
}
【程序17】
题目:
猴子吃桃问题:
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下 的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少。
publicclasslianxi17{
publicstaticvoidmain(String[]args){
intx=1;
for(inti=2;i<=10;i++){
x=(x+1)*2;
}
System.out.println("猴子第一天摘了"+x+"个桃子");
}
}
【程序21】
题目:
求1+2!
+3!
+...+20!
的和
publicclasslianxi21{
publicstaticvoidmain(String[]args){
longsum=0;
longfac=1;
for(inti=1;i<=20;i++){
fac=fac*i;
sum+=fac;
}
System.out.println(sum);
}
}