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

提交評論