2023年面试100道经典Java基础题_第1页
2023年面试100道经典Java基础题_第2页
2023年面试100道经典Java基础题_第3页
2023年面试100道经典Java基础题_第4页
2023年面试100道经典Java基础题_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面试必备100道经典Java基础题

1.完毕数组int[]a={100,40,60,87,

34,11,56,0}的迅速排序、冒泡排序;

迅速排序

实现代码:

publicclassTestOOI{

publicstaticvoidmain(String[]args){

int[]a=newint[]{100,4C,60,87,34,11,56,0};

System.outprintln("未锌苏之前的数轴是:");

print(a);

System.ouf.println("排序之后的数据是:");

sorf(a,0,a.length-1);

print(a);

〃打印措施

publicstaticvoidprint(int[]b){

for(inti=0;i<b.length;i++){

System.oi/tprint(b[i]+"

)

System.outprintln();

}

〃排序措施

staticvoidsort(int[]a,inthigh){

if(low>=high)return;//lcw示不小于high,则直接返回

lf((high-low)==1){〃假如只有两个数字,则直接比

if(a[0]>a[1])

swap(a,0,1);

return;

)

intpivot=a[low];〃取第种数作为中间数

intleft=low+1;

intright=high;

while(left<right){

〃从左边开始找

while(left<right&&left<=high*,如左不不小于右则一直循环

if(a[left]>pivot)break;

left++;〃左卜标往右边走•点

}

〃从右边开始找

while(left<=right&&right>low){〃假如左不小于右则一直循环

if(a[right]<=pivot)

break;

right”;/日下标往左走••点

)

if(left<right)〃假如还没有找完,则互换数字

svuap(a,right,left);

)

swap(a,low,right);

so/7(a,low,right);

sor/(a,right+1,high);

}

〃调位措施

privatestaticvoidswap(int[]array,inti,intj){

inttemp;

temp=array[i];

array[i]=array。];

array[j]=temp;

)

打印成果为:

未排序之前的数据是:

1004060873411560

排序2后H勺数据是:

0113440566087100

冒泡排序

实现代码:

publicclassTest002{

publicstaticvoidmain(String[]args){

int[]arr={100,40,60,87,34,11,56,0};//定义数组

System.。川.printin,未排序之前的数据是:");

maopaoPrint(arr);

System.ouf.println();

System.。”.printing排序之后的数据是:");

maopaoSort(arry,

}

〃排序措施

publicstaticvoidmaopaoSort(int[]arrys){

〃定义临时变量temp

inttemp=0;

〃用i表达下标,遍历数组

for(intj=0;j<arrys.length;j++){

〃对于每一种数组元素,从。到尚未排序的最大下标,总是把最大的数字放在后边

for(intk=0;k<arrys.length-j-1;k++){

if(arrys[k]>arrys[k+1){〃判断H前数字、•背面数字的大小

temp=arrys[k];

arrys[k]=arrys[k+1];

arrys[k+1]=temp;

)

)

)

maopaoPrint(arrys);//-IJ叩就出

)

〃打印措施

publicstaticvoidmaopaoPrint(int[]l){

for(inti=0;i<l.length;i++){

System.ouf.print(电]〃从小至十大H勺输出

}

}

打印成果为:

未排序之前的数据是:

1004060873411560

排序之后的数据是:

0113440566087100

2.采用折半查找欧I算法,在数组中查关

到某个数;

实现代码:

importjava.util.Scanner;

publicclassTest003{

publicstaticintMax=20;

//数据数组源

publicstaticintdata\]={12,16,19,22,25,32,39,39,48,55,57,58,

63,68,69,70,78,84,88,90,97);

〃计数罂

publicstaticintcount=1;

publicstaticvoidmain(String[]args){

System.ouf.printlnf•请说'您要查找而数字:");

Scannersc=newScanner(System./n);

intKeyValue=sc.nextlnt();

〃调用折半查找

if(Search(KeyValue)){

〃输出查找次数

System,outprintln("共查找了"+count+"次");

}else{

〃输出没有找到数据

System.outprintln("抱歉,数据数组源中找不到您输入的数字");

)

}

〃折半杳找法

publicstaticbooleanSesrch(intk){

intleft=0;//左边界变量

intright=Max-1;//右边界变量

intmiddle;〃中位金变量

while(left<=right){

middle=(left+right)/2;

if(k<da冏middle]){

right=middle•1W查找前半段

}elseif(k>da冏middle]){

left=middle+1力查找后半段

}elseif(k==dafa[middle]){

System.ol/fprintln("Data[>^+middle+"]="+dafafmiddle]);

returntrue;

}

count++;

)

returnfalse;

3.输入一种字符串,其中包括数字、特

殊符号(像:¥、&、(、>等)、大小写

字母等,然后输出每个字符串或符号的

ASCH码附和;例如:输入

“@#$%A&*():T,则打印出643。

实现代码:

publicclassTestOOI{

publicstaticvoidmain(String[]args){

System.ouf.println("请输入一种字符串:

Scannersc=newScanner(System./n);

Stringstr=sc.nextLine():

intsum=0;

for(inti=0;i<str.length();i++){

sum=sum+str.charAtii);

)

System.outprintin("您输入的字符串每个字节相加的和为:「sum);

)

4.将一种数组中值=0的项去掉,将不为

0时值存入一种新时数组

例如:

inta加{0,1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};

生成的新数组为:

intb[]={1,3,4,5,6,6,5,47,6,7,5}

实现代码:

importjava.util.*;

publicclassTestOOI{

publicstaticvoidmain(String[]args){

inta[]={0,1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};

Listdntegeolist=newArrayList<.lnteger^();

for(inti=O;i<a.length;i++){

if(a[i]!=O){

list.add(a[i]);

}

}

intb[]=newint[list.size()];

for(inti=0;i<list.size();i++){

b[i]=list.get(i);

}

System.。”.printing原数殂为:");

for(inti=O;i<a.length;i++){

System.ouAprint(a[i]+M");

}

System.our.println();

System.outprintln《去掉值为0H勺项之后为:");

for(inti:b){

System.outprint(i+"");

}

5.定义10个长度的Student数组,将

10个Student对象的年龄所有加1,

然后把10个Student对象的详细信息

逐行打印出来(数组和ArrayList实现)

实现代码:

性一号类:

publicclassStudent{

publicStringname;

publicStringsex;

publicintage;

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

=name;

)

publicStringgetSex(){

returnsex;

)

publicvoidsetSex(Stringsex){

this.sex=sex;

}

publicintgetAge(){

returnage;

)

publicvoidsetAge(intage){

this.age=age;

}

publicStudent(Stringname,Stringsex,intage){

superO:

=name;

this.sex=sex;

this.age=age;

)

}

第二个类:

importjava.util.ArrayList;

importjava.util.List;

publicclassTestOOI{

staticStudent[]s=newSludent[10];

intk=1;

publicstaticvoidmain(String[]args){

List<Student>li=newA-rayList<Student>();

for(inti=0;i<10;i++){

li.add(newStudent("zhangsan,,+i,"^",20));

}

for(inti=0;i<10;i++){

(li.get(i).age)++;

)

for(inti=0;i<10;i++){

System.oyAprintln(li.get(i).getName()+""+li.get(i).getSex()+""+li.get(i).getAge());

)

}

6.有工人,农民,教师,科学家,服务生,其

中,工人,农民,服务生只有基本工资.教师

除基本工资外,尚有课酬(元/天),科学家

除基本工资外,尚有年终奖,请你写出有

关类,将多种类型的员工的整年工资打

印出来

实现代码:(共有7个类)

同一种类:

packagecom.softeem.zy006;

r

*定义一种人的接口,以供实现

7

publicinterfacePeople{

publicdoublenum();

k二个类:

packagecom.softeem.zy006;

r

.工人类

*/

publicclassWorkerimplementsPeople{

privatedoublemontherSalary;

publicWorker(doublemontherSalary){

super();

this.montherSalary=montherSalary;

}

publicdoublenum(){

returngetMontherSalaryO*12;

)

publicdoublegetMontherSalaryO{

returnmontherSalary;

}

publicvoidsetMontherSaary(doublemontherSalary){

this.montherSalary=montherSalary;

那三个类:

packagecom.softeem.zy006;

r*

*农民类

*/

publicclassPeasantimplementsPeople{

privatedoublemontherSslary;

publicPeasant(doublemontherSalary){

super();

this.montherSalary=montherSalary;

)

publicdoublegetMontherSalary(){

returnmontherSalary;

}

publicvoidsetMontherSaary(doublemontherSalary){

this.montherSalary=montherSalary;

)

publicdoublenum(){

returngetMontherSalary()*12;

}

第四个类:

packagecom.softeem.zy006;

*教师类

7

publicclassTeacherimplementsPeople{

privatedoublemontherSalary;

privatedoubledaySalary;

publicTeacher(doublemontherSalary,doubledaySalary){

super();

this.montherSalary=montherSalary;

this.daySalary=daySalary;

)

publicdoublenum(){

returngetMontherSalary()*12+getDaySalary()*365;

)

publicdoublegetMontherSalary(){

returnmontherSalary;

)

publicvoidsetMontherSaary(doublemontherSalary){

this.montherSalary=montherSalary;

}

publicdoublegetDaySalary(){

returndaySalary;

}

publicvoidsetDaySalary(doubledaySalary){

this.daySalary=daySalary;

)

)

除五个类:

packagecom.softeem.zy006;

,科学家类

*/

publicclassScientistimplementsPeople{

privatedoublemontherSalary;

privatedoubleprojectsalary;

publicScientist(doublemontherSalary,doubleprojectsalary){

super();

this.montherSalary=montherSalary;

jectsalary=projectsalary;

}

publicdoublenum(){

returngetMontherSalary()*12+getProjectSalary();

}

publicdoublegetMontherSalary(){

returnmontherSalary;

}

publicvoidsetMontherSaary(doublemontherSalary){

this.montherSalary=montherSalary;

)

publicdoublegetProjectSalary(){

returnprojectsalary;

}

publicvoidsetProjectSalsry(doubleprojectsalary){

jectsalary=projectsalary;

)

)

第六个类:

packagecom.softeem.zy006;

广*

*服务员类

7

publicclassWaiterimplementsPeople{

privatedoublemontherSalary;

publicWaiter(doublemontherSalary){

super();

this.montherSalary=montherSalary;

)

publicdoublenum(){

returngetMontherSalary()*12;

}

publicdoublegetMontherSalary(){

returnmontherSalary;

)

publicvoidsetMontherSaary(doublemontherSalary){

this.montherSalary=montherSalary;

)

I

第七个类:

packagecom.softeem.zy006;

•测试类

7

publicclassTest{

publicstaticvoidmain(String[]args){

Testa=newTest();

Workerw=newWorker(IOOO);

System.ouf.println("工人由年薪为:"+w.num()+"元");

Peasantp=newPeasant(2500);

System.ouf.println("农民向年薪为:”+p.num()+"元)

Teachert=newTeacher(4500,50);

System.。”.printin("教师内年薪为:"+t.num()+"元】

Scientiste=newScientist(10500,30000);

System.ou±println("科学家『'J年薪区:"+e.num()+"元");

Waitery=newWaiter(3400);

System.。”.printing服务生的年薪为:"+y.num());

}

打印成果为:

工人的年薪为:12023.0元

农民的年薪为:30000.0元

教师的年薪为:/2250.。元

科学家的年薪为:156000.。元

服务生的年薪为:40800.0

7,创立一种复数类complex,对复数

进行数学运算,复数具有如下格式:

RealPart+lmaginaryPart*1

其中,I为一1的平方根。

规定如下:

(1)运用浮点变量表达此类的私有数据。提供两个构造措施,一种用于此类申明时对象

的初始化;一种为带默认值得无参构造措施。

(2)提供两复数加、减、乘的运算措施。

(3)按格式(a,b)打印复数。其中a为实部,b为虚部。

实现代码:

packagecom.softeem.zy007;

r

.创立一种复数类complex,对复数进行数学运算,复数具有如下格式:RealPart+lmaginaryParCI其

中,I为一1的平方根。

.规定如下:(1)运用浮点变量表达此类的私有数据。提供两个构造措施,一种用于此类申明时对象的

初始化:一种为带默认值得无参构造措施.

*(2)提供两复数加、减、乘H勺运算措施。(3)按格式(a,b)打印复数。其中a为实部,b为虚部。

7

publicclassComplexNumberimplementsCloneable{

r复数的实部7

privatedoublerealPart;

r复数mj虚部7

privatedoubleimaginaryPart;

/**默认构造函数7

publicComplexNumber(){

this.realPart=0.0;

this.imaginaryPart=0.0;

•构造函数

*

*@parama

*实部

*@paramb

*虚部

7

publicComplGxNumbGr{doublea,doubleb){

this.realPart=a;

this.imaginaryPart=b;

}

•复数的加法运算。c=a+b的运算法则是:c.实部=a.实部+b.实部;c.虚部=a.虚部+b.虚部

,@paramaComNum

*加数

*@return

7

publicComplexNumberadd(ComplexNumberaComNum){

if(aComNum==null){

System.err.println("对象不可以为null!");

returnnewComplexKumber();

)

returnnewComplexNumber(this.realPart+aComNum.getRealPart(),

this.imaginaryPart+aComNum.getlmaginaryPart());

)

.复数的减法运算。c=ab的运算法则是:c.实部=a.实部-b.实部;c.虚部=a.虚部-b.虚部

*@paramaComNum

♦减数

,@return

7

publicComplexNumberdecrease(ComplexNumberaComNum){

if(aComNum==null){

System.e/r.println("对象不可以为null!");

returnnewComplexNumber。;

)

returnnewComplexNumber(this.realPart-aComNum.getRealPart(),

this.imaginaryPart-aComNum.getlmaginaryPart());

r

,复数的乘法运算。c=a"b的运算法则是:c.实部=a.实部*b.实部-a.虚部*b.虚部;c.虚部=a.虚

部*

*b.实部+a.实部*b.虚部;

*

*@paramaComNum

*乘数

*@return

7

publicComplexNumbermultiply(ComplexNumberaComNum){

if(aComNum==null){

System.e/r.println("对象不可以为null!");

returnnewComplexNumber。;

)

doublenewReal=this.realPart*aComNum.realPart-this.imaginaryPart

*aComNum.imagin&ryPart;

doublenewlmaginary=this.realPart*aComNum.imaginar/Part

+this.imaginaryPart*aComNum.realPart;

ComplexNumberresult=newComplexNumber(newReal,newlmaginary);

returnresult;

)

*复数的除法运算。c=a/b的运算法则是:c.实部=(a.实部*b.实部+a.虚部*b.虚部)/(b.实部

一b.实部+b.虚部*b.虚部);c.虚部=(a,虚部*b.实部-a.实部*b.虚部)/(b.实部*b.实部+

*b.虚部*b.虚部);

*

*@paramaComNum

♦除数

*@return

7

publicComplexNumberdi</ide(ComplexNumberaComNum){

if(aComNum==null){

System.err.println("对象不可以为null!");

returnnewComplexNumber();

)

if((aComNum.getRealPart()==0)&&(aComNum.getlmaginaryPart()==0)){

System.e/v.println("除数不可以%0!");

returnnewComplexNumber。;

}

doubletemp=aComNum.g©tRGalPart()*aComNum.getRoalPartO

+aComNum.getlmaginaryPartO,aComNum.getlmaginaryPart();

doublecrealpart=(this.realPart*aComNum.getRealPart()+this.imaginaryPart

*aComNum.getlmaginaryPartO)

/temp;

doublecimaginaryPart=(this.imaginaryPart*aComNum.getRealPart()-this.realPart

*aComNum.getlmaginaryPartO)

/temp;

returnnewComplexNumber(crealpart,cimaginaryPart);

/**

•将•种复数显示为字符串

*/

publicStringtoString(){

returnthis.realPart+"+"+this.imaginaryPart+"i";

)

•比较一种对象与否和这个复数对象的值相等

7

publicbooleanequals(Objectobj){

if(obj==null){

returnfalse;

}

//首先判断a是不是一种且数对象,instances关键字是用来判断对象的类型。

if(objinstanceofComplexNumber){

〃假如a是复数对象,需要将它强制类型转换成复数对象,才能调用梵数类提供的措施。

ComplexNumberb=(ComplexNumber)obj;

if((this.realPart==b.getRealPart())

&&(this.imaginar/Part==b.getlmaginaryPart())){

returntrue;

}else{

returnfalse;

}

}else{

returnfalse;

)

)

*获得该复数对象/、Jhash8de

7

publicinthashCode(){

//假如两个复数对象是equalsH勺,那么它们的hashCode也必须相似。

//两个值相等的复数对象通过toString()措施得到的输出字符串是同样的,

//于是,可以把得到的字符串H勺hashCode当作复数对象的hashCode

returnthis.toString().hashCode();

}

/**

•根据既有对象克隆•种新对象

7

publicObjectclone(){

//假如你要使自定义的类可以被clone,就必须实现Cloneable接口并且重写它的clone。措施.

〃假如你仅仅重写了clone措施向没有在类II勺申明中添加实现cloneable接口,调用clone措施时将

会出现

//CloneNotSupportedException异常,读者可以试试。

try(

ComplexNumbernewObject=(ComplexNumber)super.clone();

newObject.setRealPart(this.realPart);

newObject.setlmaginaryPart(this.imaginaryPart);

returnnewObject;

}catch(CloneNotSupportedExceptione){

〃〃假如没有实现Cloneable接口,抛出异常

e.printStackTrace();

returnnull;

}

}

/**

•@return返回imaginaryParto

7

publicdoublegetlmaginaryPart(){

returnimaginaryPart;

)

*(aiparamimaginaryPart

*要设苴的imaginayPart。

7

publicvoidsetlmaginaryPart(doubleimaginaryPart){

this.imaginaryPart=imaginaryPart;

)

L

*@return返回realParto

7

publicdoublegetRealPac(){

returnrealPart;

*@paramrealPart

*要设置的realParto

7

publicvoidsetRealPart(doublerealPart){

this.realPart=realPart;

)

publicstaticvoidmain(String[]args)throwsCloneNotSupportedException{

ComplexNumbera=newComplexNumber(3,5);

ComplexNumberb=newComplexNumber(2,4);

System.OL/tprintln("ComplexNumbera:"+a.toStringO);

Systemoutprintln("ComplexNumberb-"+btoString());

System.our.println("(a+b)="+a.add(b).toString());

System.ot/Aprintln("(a-b)="+a.decrease(b).toString());

System.OL/fprintln("(a*b)="+a.multiply(b).toString());

System.ouAprintln("(a/b)="+a.divide(b).toString());

)

8,实现圆类circle,包具有关的组员变

量和组员措施。从圆类派生出圆柱类

cylindero根据建立的两个类,从键盘

输入5个圆的半径,5个圆柱的I半径和

高度,并分别是输出5个圆区I面积,5

个圆柱的体积

实现代码:(共有三个类)

k限「

packagecom.softeem.zy008;

publicclassCircle{

privatestaticfinalfloatf=(float)Math.P/;

/**

•计算出圆的面积

7

publicfloatgetArea(floatrr){

floatarea=f*rr*rr;

returnarea;

)

,二个类:

packagecom.softeem.zy008;

publicclassCylinderextendsCircle{

publicfloatgetVolume(floatrr,floatg){

floatarea=super.getArea(rr);

floatvolume=area*g;

returnvolume;

}

性三个类(测试类):

packagecom.softeem.zy008;

importjava.util.Scanner;

publicclassTest{

publicstaticvoidmain(String[]args){

Testt=newTest();

t.Demo001();

System.ouAprintln();

t.Demo002();

)

publicvoidDemo001(){

System.ouf.printlnf计麻圆的面积:”);

System.outprintlnC请输入5个圆的半径(一行写一种半径):");

float[]f=newfloat[5];

for(Inti=0;i<=4;i++)[

Scannersc=newScsnner(System./n);

f(i]=sc.nextFloat();

}

for(inti=0;i<f.length;i++){

Circlec=newCircle();

floatarea=c.getArea;f[i]);

System.oi/tprintln("半经务*+f[i]+叩勺圆的面积为:"+area);

publicvoidDemo002(){

System.ouf.printlnC接下来是计算圆柱的体积:");

System.oSprintlnC•请先输入5个圆柱口勺半径(一行写一种):");

floatf](1=newfloat[5];

for(inti=0;i<=4;i++)[

Scannersc=newScanner(System./n);

f1[i]=sc.nextFloat();

)

System.。”.printin("请再分别输入5个圆柱对应的高度(一行写一种

float[]12=newfloat[5];

for(inti=0;i4;i++)(

Scannersc=newScsnner(System./n);

f2[i]=sc.nextFloat();

}

for(inti=0;i<5;i++){

Cylinderc=newCylinder();

floatvolume=c.getVolume(f1[i],f2[i]);

System.ouf.println("半经为31。]+”,高为"+f2[i]+"的圆柱的体积为:[volume);

)

}

9.输入一种整数,求这个整数中每位数

字相加的和

实现代码:

packagecom.softeem.zy009;

importjava.util.Scanner;

r

•输入一•种整数,求这个整数中每位数字相加的和

*/

publicclassTestOOI{

publicstaticvoidmain(String[]args){

System.o”.println("请输入一种整数:");

Scannersc=newScanner(System./n);

Strings=sc.nextLine();

intsum=0;

for(inti=0;i<s.length();i++){

sum=sum+lnteaer3rse/cf(s.va/ueO/(s.charAt(i)));

)

System.outprintln("您输入的整数是:"+s);

System.。”.printin("各位数字相加的和为:"+sum);

)

10.编写一种java应用程序,规定如下

(1)申明一种String类口勺变量并初始化值“HelloWorld”。

(2)用字符串类的一种措施将上面变量口勺值拆提成"Hello”和“World”两个字符串并打印输

出。

(3)将”Hell。”这个变量转换成大写、“World”转换成小写并打印输出。

(4)申明一种String类的变量并初始化值“20230110”。

(5)将上面变量时值转换成2010年1月10日的形式打印输出。

实现代码:

publicclassTestOOI{

publicstaticfinalStringstr1="HelloWorld";

publicstaticfinalStringstr2="20230110";

publicstaticvoidmain(String[]args){

TestOOIt=newTestOO1();

t.Demo();

}

publicvoidDemo(){

String口s=sfrfsplit("");

System.outprintlnf*标分后为:"+s[0]+"、"+s[1]);

System.o"println(s⑼+"转换成大官之后为:"+s[0].toUpperCase());

System.ouf.println(s[1]+"转换成小写之后为:"+s[1].toLowerCase());

SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");

System.ot/f.println(sfr2substring(0,4)+“年"+sfr2.subsMng(4,6)+"月"+sf「2.substring⑹+"曰");

)

11.求s=1+3+5+7+…直到s>2023为止

实现代码:

publicclassTestOOI{

publicstaticvoidmain(String[]args){

intsum=0;

for(inti=1;;i=i+2){

sum=sum+i;

System.ouAprintln(sum);

if(sum>2023){

break;

)

)

System."1.printing程序停止:和已经不小于2023了");

)

12,计算s=2!+4!+8!+11!。(首先先定

义一种函数,函数的功能就是求任何一

种数时阶乘)

实现代码:

publicclassTestOOI{

publicstaticvoidmain(String[]args){

TestOOIt=newTestOO1();

intsum=

tgetJieCheng(2)+t.getJieCheng(2)+t.getJieCheng⑷+t.getJieCheng(8)+t.getJieCheng(11);

System.o^.println("2!+4!+8!+11!="+sum);

)

〃求任何一种数的阶乘

publicintgetJieCheng(intm){

intf=1;

for(inti=1;i<=m;i++){

f=i*f;

}

returnf;

13.求200到400间,能被3整除但不

能被7整除时数的个数

实现代码:

publicclassTestOOI{

publicstaticvoidmain(String[]args){

intcount=0;

System.ouf.printlnf•能被3整除但不能被7整除的数有:”);

for(inti=200;i<=400;i++){

if(i%3==0&&i%7(=0){

System.outprint(i+"");

count++;

}

}

System.OL/f.println();

System.。”.print("能被3整除但不能被7整除H勺数的个数有"+count+"个)

)

14.求能被3整除且至少有一位数字为

5时三位数的个数

实现代码:

importjava.util.ArrayList;

importjava.util.List;

publicclassTestOOI{

publicstaticvoidmain(String[]args){

intcount=0;

List<lnteger>li=newArrayList<lnteger>();

for(inti=100;i<=999;i++){

li.add(i);

}

System.ouf.printlnf•能被3整除且至少有一位数才为5的三位数行;");

for(inti=100;i<li.sizei);i++){

if(li.get(i)%3==0){

if(li.get(i).toString().substring(2).equals("5")

||li.get(i).toString().substring(1,2).equals("5")

IIli.get(0).toStrirg().substring^,1).equals(M5")){

System.ouf.print(li.get(i)+"

count++;

}

System.ouAprintln("\r\n能被3整除且至少有一位数字为5的三位数的个数有"+count+"个)

}

打印成果为:

能被3整除且至少有一位数字为5的三位数有:

225252255258285315345351354357375405435450453456459465495525552555558

585615645651654657675705735750753756759765795825852855858885915945951

954957975

能被3整除旦至少有一位数字为5的三位数的个数有49个

15.求三位奇数中,个位数字与十位数

字之和除以10所得的余数是百位数字

时数的个数

实现代码:

publicclassTestOOI{

publicstaticvoidmain(String[]args){

intcount=0;

inta=0,aa=O,aaa=0;

for(inti=100;i<=999;i++){

if(i%2==1){

a=i%10H个位

aa=(i/10)%10;//i(i

aaa=(i/10)/10;〃百位

if(aaa==((a+aa)%13)){

count++;

}

)

}

System.ot/f.println("所求个数为:"+count+"个

)

16.解百马百瓦古题。

大、小马和马驹共100匹,共驮100片瓦。大马一驮三,小马一驮二,马驹二驮一,--次

驮完,三种马都驮,共有多少种组合?

实现代码:

publicclassTestOOI{

publicstaticvoidmain(String[]args){

for(inti=1;i<=98;i++){

for(intj=1;j<=98;j++)[

for(intk=1;k<=98;k++){

if(i+j+k==100&&k%2==0&&i*3+j*2+k/2*1==100){

System.o".println("大马〜i+"小马:"+j+"马驹:"+K+"");

)

)

)

}

}

17.求100-200之间的所有素数

实现代码:

publicclassTestOOI{

publicstaticvoidmain(String[]args){

TestOOIs=newTestOOI();

s.Methodi();

)

〃判断101-200之间有多少个素数,并输出所有素数

publicvoidMethodi(){

intcount=0;

System.outprintln(-100-200之间的素数有:”);

for(inti=1O1;i<=200;i++){

booleanflag=true;

for(intj=2;j<=Math.sqrt(i);j++){

if(i%j==0){

flag=false;

break;

)

}

if(flag){

count++;

System.oi/tprint(i+'

}

)

System.OL/Aprintln(M\n共芍"+count+”个)

18.输出水仙花的个数

(所谓水仙花数是指一种三位十进制数,该数的各位数字立方之和等于该数自身。例如

153是一种水仙花数,由于1人3+5人3+3人3=153)

实现代码:

publicclassTestOOI{

staticintb,bb,bbb;

publicstaticvoidmain(String[]args){

System.ouf.println("水仙花数有:");

intcount=0;

for(intnum=101;num<1000;num++){

bbb=num/100;

bb=(num%100)/10;

(num%100)%10;

if(bbb*bbb*bbb+bb*bb*bb+b*b*b==num){

count++;

System.ourprintln(num);

}

)

System.。”.printin("共有,+count+"个");

19.猴子摘桃问题

猴子第1天摘下若干桃子,当即吃掉二分之一,又多吃一种,第二天将剩余的部分吃掉二

分之一还多一种;以此类推,到第10天只剩余1个。问第1天共摘了多少桃子

实现代码:

publicclassTestOOI{

publicstaticvoidmain(String[]args){

inta=1力第十个月的桃了•个数

intb=10;//用b-1来农达所通过的月数

for(inti=b-1;i>=1;i-){

a=(a+1)*2;

)

System."1.print("第一天共摘j'"+a+"个桃子");

)

}//打印成果为:第一天共摘了1534个桃子

20.一种两位数的正整数,假如将其个

位数与十位数字对调所生成时数称为其

对调数,如28是82时对调数。现给定

一种两位的正整数46,请找到另一种

两位的整数,使这两个数之和等于它们

时各自的对调数之和。这样的另一种两

位数有多少个。

实现代码:

publicclassTestOOI{

staticintdemo=46;

publicstaticvoidmain(String[]args){

intdemoSum=(demo/10)+(demo%10)*10;

intcount=0;

System.ouf.printlnf•这样向两位数有:");

for(inti=10;i<100;i++){

intshi=i/10;

intge=(i%10)*10;

intsum=shi+ge;

if((demo+i)==(demoSum+sum)){

count++;

System.ouf.print(i+"');

)

)

System.outprintln("\r\n共有"+count+"个");

)

21.求1〜200之间时能被7整除的数

的平方和

实现代码:

publicclassTestOOI{

publicstaticvoidmain(String[]args){

intsum=0;

for(inti=1;i<=200;i++){

if(i%7==0){

sum=sum+(i*i);

)

)

System.ourprintln("1-200之间口勺能被7整除的数口勺平方和="+sum);

)

22.求1~99的平方根的和并输出成

果。(保留小数点两位)

实现代码:

publicclassTestOOI{

publicstaticvoidmain(String[]args){

doublesum=0;

for(inti=1;i<=99;i++){

sum=sum+Math.sqrt(i);

)

System.ot/Aprintln("1~99小J平方根/、J和"+sum);

)

23.求[351,432]之间既不能被3整除,

也不能被8整除的正整数的个数

实现代码:

publicclassTestOOI{

publicstaticvoidmain(String[]args){

intcount=0;

System.o”.primin("[351,432]之间既不能被3整除,也不能被8整除H勺正整数有:");

for(inti=351;i<=432;i++){

if(i%3!=0&&i%8!=0){

count++;

System.ouf.print(i+"');

)

)

System.ouf.println("\r\n共有:"+count+"个");

}

24.已知24有8个正整数因子

(即:1,2,3,4,6,8,12,24),而24恰好被其因子个数8整除。问[100,300]之间有多少个这样

日勺数。

实现代码:

mportjava.util.ArrayList;

importjava.util.List;

publicclassTestOOI{

publicstaticvoidmain(String[]args){

intk;

intflag=0;

intsize=0;

System.ouf.println(R00,300]之间符合题意的正整数有:");

for(intn=100;n<=300;n++){

List<lnteger>list=newArrayList<lnteger>();

for(inti=1;i<=n;i++){

if(n%i==0){

l

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论