Java程序員面試題集_第1頁
Java程序員面試題集_第2頁
Java程序員面試題集_第3頁
Java程序員面試題集_第4頁
Java程序員面試題集_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

【程序1】

題目:古典問題:有--對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三

個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數(shù)為多少?

〃這是一個菲波拉契數(shù)列問題

publicclasslianxiOl{

publicstaticvoidmain(String[]args){

System,out.printin("第1個月的兔子對數(shù):1");

System,out.printin("第2個月的兔子對數(shù):1");

intfl=1,f2=1,f,M=24;

for(inti=3;i<=M;i++){

f=f2;

f2=fl+f2;

fl=f;

System,out.println("第"+i+”個月的兔子對數(shù):"+f2);

}

}

}

【程序2】

題目:判斷101-200之間有多少個素數(shù),并輸出所有素數(shù)。

程序分析:判斷素數(shù)的方法:用一個數(shù)分別去除2到sqrt(這個數(shù)),如果能被整除,則表

明此數(shù)不是素數(shù),反之是素數(shù)。

publicclasslianxi02{

publicstaticvoidmain(String[]args){

intcount=0;

for(inti=101;i<200;i+=2){

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.printin(i);}

}

System,out.println("素數(shù)個數(shù)是:"+count);

}

)

【程序3】

題目:打印出所有的“水仙花數(shù)",所謂“水仙花數(shù)”是指一個三位數(shù),其各位數(shù)字立

方和等于該數(shù)本身。例如:153是一個“水仙花數(shù)“,因為153=1的三次方+5的三次方

+3的三次方。

publicclasslianxi03{

publicstaticvoidmain(String[]args){

intbl,b2,b3;

for(intm=101;m<1000;m++){

b3=m/100;

b2=m%100/10;

bl=m%10;

if((b3*b3*b3+b2*b2*b2+bl*bl*bl)==m){

System.out.println(m+,,是一個水仙花數(shù)");}

)

)

)

【程序4】

題目:將一個正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。

程序分析:對n進行分解質(zhì)因數(shù),應先找到一個最小的質(zhì)數(shù)k,然后按下述步驟完成:

(1)如果這個質(zhì)數(shù)恰等于n,則說明分解質(zhì)因數(shù)的過程已經(jīng)結束,打印出即可。

(2)如果n<>k,但n能被k整除,則應打印出k的值,并用n除以k的商,作為新的正整

數(shù)你n,重復執(zhí)行第一步。

(3)如果n不能被k整除,則用k+1作為k的值,重復執(zhí)行第一步。

importjava.util.*;

publicclasslianxi04{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System,in);

System.out.print("請鍵入一個正整數(shù):”);

intn=s.nextlnt();

intk=2;

System.out.print(n+"=”);

while(k<=n){

if(k==n){System,out.println(n);break;}

elseif(n%k==0){System,out.print(k+);n=n/k;}

elsek++;

)

)

)

【程序5】

題目:利用條件運算符的嵌套來完成此題:學習成績)二90分的同學用A表示,60-89分之

間的用B表示,60分以下的用C表示。

importjava.util.

publicclasslianxi05{

publicstaticvoidmain(String[]args){

intx;

chargrade;

Scanners=newScanner(System,in);

System.out.print(“請輸入一個成績:“);

x=s.nextlnt();

grade=x>=90?'A'

:X>=60?'B'

:,C';

System.out.printin("等級為:+grade);

}

)

【程序6】

題目:輸入兩個正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。

/**在循環(huán)中,只要除數(shù)不等于0,用較大數(shù)除以較小的數(shù),將小的?個數(shù)作為下?輪循環(huán)

的大數(shù),取得的余數(shù)作為卜一輪循環(huán)的較小的數(shù),如此循環(huán)直到較小的數(shù)的值為0,返回較

大的數(shù),此數(shù)即為最大公約數(shù),最小公倍數(shù)為兩數(shù)之積除以最大公約數(shù)。*/

importjava.util.*;

publicclasslianxi06{

publicstaticvoidmain(String[]args){

inta,b,m;

Scanners=newScanner(System,in);

System,out.print("鍵入一個整數(shù):”);

a=s.nextlnt();

System.out.print("再鍵入一個整數(shù):“);

b=s.nextlnt();

deffcd=newdeff();

m=cd.deff(a,b);

intn=a*b/m;

System,out.printIn("最大公約數(shù):”+m);

System,out.printin(“最小公倍數(shù):"+n);

)

)

classdeff{

publicintdeff(intx,inty){

intt;

if(x<y){

t=x;

X=y;

y=t;

)

while(y!=0){

if(x==y)returnx;

else{

intk=x%y;

x二y;

y=k;

)

)

returnx;

}

)

【程序7】

題目:輸入一行字符,分別統(tǒng)計出其中英文字母、空格、數(shù)字和其它字符的個數(shù)。

importjava.util.*;

publicclasslianxi07{

publicstaticvoidmain(String[]args){

intdigital=0;

intcharacter=0;

intother=0;

intblank=0;

char[]ch=null;

Scannersc=newScanner(System,in);

Strings=sc.nextLineO;

ch=s.toCharArray();

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

if(ch>='0r&&ch<=,9,){

digital++;

}elseif((ch>='a'&&ch<='z')||ch>'A'&&ch<='Z'){

character++;

}elseif(ch==,'){

blank++;

}else{

other++;

}

)

System.out.printin(“數(shù)字個數(shù):"+digital);

System.out.printin("英文字母個數(shù):"+character);

System.out.printIn("空格個數(shù):”+blank);

System.out.printin("其他字符個數(shù):"+other);

)

【程序8】

題目:求s=a+aa+aaa+aaaa+aa-a的值,其中a是一個數(shù)字。例如2+22+222+2222+22222(此

時共有5個數(shù)相加),幾個數(shù)相加有鍵盤控制。

importjava.util.*;

publicclasslianxi08{

publicstaticvoidmain(String[]args){

longa,b=0,sum=0;

Scanners=newScanner(System,in);

System.out.print("輸入數(shù)字a的值:“);

a=s.nextlnt();

System.out.print("輸入相加的項數(shù):”);

intn=s.nextlnt();

inti=0;

while(i<n){

b=b+a;

sum=sum+b;

a=a*10;

++i;

}

System,out.println(sum);

}

}

【程序9】

題目:一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為“完數(shù)例如6G+2+3.編

程找出1000以內(nèi)的所有完數(shù)。

publicclasslianxi09{

publicstaticvoidmain(String[]args){

System.out.println(u1到1000的完數(shù)有:");

for(inti=l;i<1000;i++){

intt=0;

for(intj=l;j<=i/2;j++)(

if(i%j=0){

t=t+j;

)

)

if(t==i){

System.out.print(i+”“);

}

【程序10]

題目:一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第

10次落地時,共經(jīng)過多少米?第10次反彈多高?

publicclasslianxilO{

publicstaticvoidmain(String[]args){

doubleh=100,s=100;

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

s=s+h;

h=h/2;

System.out.printin(“經(jīng)過路程:"+s);

System.out.printin("反彈高度:"+h/2);

【程序11]

題目:有1、2、3、4四個數(shù)字,能組成多少個互不相同且無重復數(shù)字的三位數(shù)?都是多少?

publicclasslianxil1{

publicstaticvoidmain(String[]args){

intcount0;

for(intx=l;x<5;x++){

for(inty=l;y<5;y++){

for(intz=l;z<5;z++){

if(x!=y&&y!=z&&x!=z){

count++;

System,out.printin(x*100+y*10+z);

}

}

}

}

System,out.printIn("共有"+count+“個三位數(shù)”);

)

)

【程序12]

題目:企業(yè)發(fā)放的獎金根據(jù)利潤提成。利潤(I)低于或等于10萬元時,獎金可提10%利潤

高于10萬元,低于20萬元時,低于10萬元的部分按10%提成,高于10萬元的部分,可可

提成7.5%;20萬到40萬之間時,高于20萬元的部分,可提成5%;40萬到60萬之間時高

于40萬元的部分,可提成3臨60萬到100萬之間時,高于60萬元的部分,可提成1.5樂

高于100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤,求應發(fā)放獎金總

數(shù)?

importjava.util.*;

publicclasslianxi12{

publicstaticvoidmain(String[]args){

doublex=0,y0;

System,out.print(“輸入當月利潤(萬):”);

ScannersnewScanner(System,in);

x=s.nextlnt();

if(x>0&&x<-10){

y=x*0.1;

}elseif(x>10&&x<=20){

y=10*0.1+(x-10)*0.075;

}elseif(x>20&&x<=40)(

y=10*0.1+10*?0.075+(x-20)*0.05;

}elseif(x>40&&x〈=60){

y=10*0.1+10*10.075+20*0.05+(x-40)*0.03;

}elseif(x>60&&x〈=100){

y=20*0.175+20:*0.05+20*0.03+(x-60)*0.015;

}elseif(x>100){

y=20*0.175+40*0.08+40*0.015+(x-100)*0.01;

)

System.out.printin("應該提取的獎金是“+y+“萬”);

)

}

【程序13]

題目:一個整數(shù),它加上100后是一個完全平方數(shù),再加上168又是一個完全平方數(shù),請問

該數(shù)是多少?

publicclasslianxil3{

publicstaticvoidmain(String[]args){

for(intx=1;x<100000;x++){

if(Math,sqrt(x+100)%1==0){

if(Math,sqrt(x+268)%1==0){

System.out.println(x+“加100是一個完全平方數(shù),再加168又是一個完全平方數(shù)”);

}

}

)

}

)

/*按題意循環(huán)應該從TOO開始(整數(shù)包括正整數(shù)、負整數(shù)、零),這樣會多一個滿足條件

的數(shù)-99。

但是我看到大部分人解這道題目時都把題中的“整數(shù)”理解成正整數(shù),我也就隨大流了。*/

【程序14]

題目:輸入某年某月某日,判斷這一天是這一年的第兒天?

importjava,util.*;

publicclasslianxi14{

publicstaticvoidmain(String[]args){

intyear,month,day;

intdays=0;

intd=0;

inte;

inputfymd=newinput();

do{

e=0;

System,out.print("輸入年:");

year=fymd.input();

System.out.print(“輸入月:”);

month=fymd.input();

System.out.print(“輸入天:”);

day=fymd.input();

if(year<0|'month<0||month>12||day<0||day>31){

System,out.println("輸入錯誤,請重新輸入!”);

e=l;

)

}while(e=l);

for(inti=l;i<month;i++){

switch(i){

case1:

case3:

case5:

case7:

case8:

case10:

case12:

days=31;

break;

case4:

case6:

case9:

case11:

days=30;

break;

case2:

if((year%400==0)||(year%4=0&&year%100!=0)){

days=29;

}else{

days=28;

)

break;

)

d+=days;

)

System,out.printIn(year++month++day+”是這年的第”+(d+day)

+“天?!?;

)

)

classinput{

publicintinput(){

intvalue=0;

Scanners=newScanner(System,in);

value=s.nextlnt();

returnvalue;

)

)

【程序15]

題目:輸入三個整數(shù)x,y,z,請把這三個數(shù)由小到大輸出。

importjava.util.

publicclasslianxil5{

publicstaticvoidmain(String[]args){

inputfnc=newinput();

intx=0,y=0,z=0;

System.out.print("輸入第一個數(shù)字:”);

x=fnc.input();

System.out.print(“輸入第二個數(shù)字:");

y=fnc.input();

System.out.print(“輸入第三個數(shù)字:”);

z=fnc.input();

if(x>y){

intt=x;

x=y;

y=t;

)

if(x>z){

intt=x;

z=t;

)

if(y>z){

intt=y;

y=z;

z=t;

)

System,out.println("三個數(shù)字由小到大排列為:“+x+"”+y+""+z);

)

}

classinput{

publicintinput(){

intvalue=0;

Scanners二newScanner(System,in);

value=s.nextlnt();

returnvalue;

}

)

【程序16]

題目:輸出9*9口訣。

publicclasslianxi16{

publicstaticvoidmain(String[]args){

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

for(intj=l;j<=i;j++){

System.out.print(j++i++j*i+“”);

if(j*i<10){System.out.print(?,");}

)

System.out.printlnO;

)

}

)

【程序17]

題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個

第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的

一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。

publicclasslianxil7{

publicstaticvoidmain(String[]args){

intx=1;

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

x=(x+l)*2;

)

System.out.printIn("猴子第一天摘了“+x+"個桃子”);

)

)

【程序18]

題目:兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽簽

決定比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請編程

序找出三隊賽手的名單

publicclasslianxil8{

staticchar[]m={,'b,,(cf};

staticchart]n={'x','y','z'};

publicstaticvoidmain(String[]args){

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

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

if(m[i]=匕'&&n[j]==''){

continue;

}elseif(m[i]=='af&&n[j]==){

continue;

}elseif((m[i]==<c,&&n[j]==,x')

I(m[i]-'c'&&n[j]=='z')){

continue;

}elseif((m[i]==廿&&n[j]==2)

(m[i]=W&&n[j]==H)){

continue;

}else

System,out.println(m[i]+“vs"+n[j]);

}

)

)

)

【程序19]

題目:打印出如下圖案(菱形)

*

publicclasslianxil9{

publicstaticvoidmain(String[]args){

intH=7,W=7;〃高和寬必須是相等的奇數(shù)

for(inti=0;i<(H+l)/2;i++){

for(intj=0;j<W/2-i;j++){

System,out.print("“);

)

for(intk=l;k<(i+l)*2;k++){

System,out.print(,*');

)

System.out.printlnO;

)

for(inti=l;i<=H/2;i++){

for(intj=l;j<=i;j++){

System,out.print("");

}

for(intk=l;k<=W-2*i;k++){

System,out.print(,*');

System,out.printlnO;

)

)

)

【程序20]

題目:有一分數(shù)序列:2/1,3/2,5/3,8/5,13/8,21/13…求出這個數(shù)列的前20項之和。

publicclasslianxi20{

publicstaticvoidmain(String[]args){

intx=2,y=1,t;

doublesum=0;

for(inti=l;i<=20;i++){

sum=sum+(double)x/y;

t=y;

y二x;

x=y+t;

)

System.out.printin(“前20項相加之和是:"+sum);

}

)

【程序21]

題目:求1+2!+3!+…+20!的和

publicclasslianxi21{

publicstaticvoidmain(String[]args){

longsum=0;

longfac=1;

for(inti=l;i<=20;i++)(

fac=fac*i;

sum十=fac;

)

System,out.printIn(sum);

)

)

【程序22]

題目:利用遞歸方法求5!。

publicclasslianxi22{

publicstaticvoidmain(String[]args){

intn=5;

recfr=newrec();

System,out.println(n+w!="+fr.rec(n));

)

}

classrec{

publiclongrec(intn){

longvalue=0;

if(n){

value=1;

}else{

value二n*rec(n-1);

}

returnvalue;

)

)

【程序23]

題目:有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數(shù),

他說比第3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第一個人大

兩歲。最后問第一個人,他說是10歲。請問第五個人多大?

publicclasslianxi23{

publicstaticvoidmain(String[]args){

intage=10;

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

age=age+2;

)

System,out.println(age);

)

)

【程序24]

題目:給一個不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字。

〃使用了長整型最多輸入18位

importjava.util.*;

publicclasslianxi24{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System,in);

System.out.print(“請輸入一個正整數(shù):”);

longa=s.nextLongO;

Stringss=Long.toString(a);

chart]ch=ss.toCharArray();

intj=ch.length;

System.out.println(a+”是一個"+j+"位數(shù)。");

System.out.print("按逆序輸出是:");

for(inti=j-l;i>=0;i-){

System.out.print(ch[i]);

)

}

)

【程序25]

題目:一個5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個位與萬位相同,十位與千

位相同。

importjava.util.

publicclasslianxi25{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System,in);

inta;

do{

System.out.print(“請輸入一個5位正整數(shù):”);

a=s.nextlnt();

}while(a<10000||a>99999);

Stringss=String.valueOf(a);

char[]ch=ss.toCharArray();

if(ch[0]==ch[4]&&ch[1]==ch[3]){

System,out.printin("這是?個回文數(shù)”);}

else{System,out.printin(“這不是一個回文數(shù)”);}

)

)

〃這個更好,不限位數(shù)

importjava.util.*;

publicclasslianxi25a{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System,in);

booleanis=true;

System.out.print(“請輸入一個正整數(shù):”);

longa=s.nextLongO;

Stringss=Long.toString(a);

char[]ch=ss.toCharArray();

intj=ch.length;

for(inti=0;i<j/2;i++){

if(ch[i]!=ch[j-i-l]){is=false;}

}

if(is==true){System.out.printin(“這是一個回文數(shù)");}

else(System,out.printin(“這不是一個回文數(shù)");}

}

【程序26]

題目:請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續(xù)判

斷第二個字母。

importjava.util.

publicclasslianxi26{

publicstaticvoidmain(String[]args){

getChartw=newgetChar();

System.out.printin(“請輸入星期的第一個大寫字母:”);

charch=tw.getChar();

switch(ch){

case'M':

System.out.println("Monday");

break;

caseiW,:

System,out.print!n("Wednesday");

break;

case'F':

System,out.println("Friday");

break;

caseT:{

System,out.println(“請輸入星期的第二個字母:”);

charch2=tw.getChar();

if(ch2==U){System,out.printin("Tuesday");}

elseif(ch2=='H'){System.out.println(uThursdayv;}

else{System.out.printin("無此寫法!”);

)

};

break;

caseS:{

System.out.printin(“請輸入星期的第二個字母:”);

charch2=tw.getChar();

if(ch2=='U'){System,out.printIn("Sunday");}

elseif(ch2=='A'){System,out.printin("Saturday");}

else{System,out.printin("無此寫法!”);

)

);

break;

default:System.out.printin("無此寫法!”);

)

)

)

classgetChar(

publicchargetChar(){

Scanners=newScanner(System,in);

Stringstr=s.nextLineO;

charch=str.charAt(0);

if(ch<rN||ch〉'Z'){

System.out.printin("輸入錯誤,請重新輸入”);

ch=getChar();

)

returnch;

)

)

【程序27]

題目:求100之內(nèi)的素數(shù)

〃使用除sqrt(n)的方法求出的素數(shù)不包括2和3

publicclasslianxi27{

publicstaticvoidmain(String[]args){

booleanb=false;

System,out.print(2+”“);

System,out.print(3+”“);

for(inti=3;i<100;i+=2){

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

if(i%j=0){b=false;

break;

}else{b=true;}

)

if(b==true){System,out.print(i+”");}

)

)

}

〃該程序使用除1位素數(shù)得2位方法,運行效率高通用性差。

publicclasslianxi27a(

publicstaticvoidmain(String[]args){

int[]a=newint[]{2,3,5,7);

for(intj=0;j<4;j++)System.out.print(a[j]+”“);

booleanb=false;

for(inti=ll;i<100;i+=2){

for(intj=0;j<4;j++){

if(i%a[j]==0){b=false;

break;

}else{b=true;}

)

if(b—true){System,out.print(i+”“);}

)

)

【程序28]

題目:對10個數(shù)進行排序

importjava.util.*;

publicclasslianxi28{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System,in);

int[]a=newint[10];

System.out.printIn(“請輸入10個整數(shù):”);

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

a[i]=s.nextlnt();

}

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

for(intj=i+l;j<10;j++){

if(a[i]>a[j]){

intt=a[i];

a[i]=a[j];

a[j]=t;

)

)

)

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

System.out.print(a[i]+"");

)

)

)

【程序29)

題目:求個3*3矩陣對角線元素之和

importjava.util.*;

publicclasslianxi29{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System,in);

int[][]a=newint[3][3];

System.out.printin(“請輸入9個整數(shù):”);

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

for(intj=0;j<3;j++){

a[i][j]=s.nextlnt();

}

)

System.out.printin("輸入的3*3矩陣是:");

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

for(intj=0;j<3;j++){

System.out.print(a[i][j]+”");

}

System,out.printlnO;

intsum=0;

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

for(intj=0;j<3;j++){

if(i==j){

sum+=a[i][j];

)

)

)

System.out.printin(“對角線之和是:"+sum);

}

)

【程序30]

題目:有一個已經(jīng)排好序的數(shù)組?,F(xiàn)輸入一個數(shù),要求按原來的規(guī)律將它插入數(shù)組中。

〃此程序不好,沒有使用折半查找插入

importjava.util.

publicclasslianxi30{

publicstaticvoidmain(String[]args){

int[]a=newint[]{1,2,6,14,25,36,37,55);

int[]b=newint[a.length+1];

inttl=0,t2=0;

inti=0;

Scanners=newScanner(System,in);

System.out.print(“請輸入一個整數(shù):”);

intnum=s.nextlnt();

if(num>=a[a.length-1]){

b[b.length-1]=num;

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

b[i]=a[i];

}

}else{

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

if(num>=a[i]){

b[i]=a[i];

}else{

b[i]=num;

break;

)

)

for(intj=i+1;j<b.length;j++){

b[j]=a[j-l];

)

}

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

System,out.print(b[i]+”“);

}

)

)

【程序31]

題目:將一個數(shù)組逆序輸出。

importjava.util.*;

publicclasslianxi31{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System,in);

inta[]=newint[20];

System.out.printin(“請輸入多個正整數(shù)(輸入T表示結束);

inti=0,j;

do{

a[i]=s.nextlnt();

i++;

}while(a[i-l]!=-l);

System,out.printIn(“你輸入的數(shù)組為:”);

for(產(chǎn)0;j++){

System.out.print(a[j]+"");

)

System.out.printIn(^\n數(shù)組逆序輸出為:”);

for(j=i-2;j>=0;j=j-l){

System,out.print(a[j]+”“);

)

)

)

【程序32]

題目:取一個整數(shù)a從右端開始的4?7位。

importjava.util.

publicclasslianxi32{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System,in);

System.out.print(“請輸入一個7位以上的正整數(shù):”);

longa=s.nextLongO;

Stringss=Long.toString(a);

char[]ch=ss.toCharArray();

intj=ch.length;

if(j<7){System,out.printin("輸入錯誤!”);}

else{

System.out.printin(“截取從右端開始的4?7位

是:w+ch[j-7]+ch[j-6]+ch[j-5]+ch[j-4]);

}

}

)

【程序33]

題目:打印出楊輝三角形(要求打印出10行如下圖)

1

11

121

1331

14641

15101051

publicclasslianxi33{

publicstaticvoidmain(String[]args){

int[][]a=newint[10][10];

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

a[i][i]=1;

a[i][0]=1;

)

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

for(intj=l;j<i;j++){

a[i][j]=a[i-l][j-1]+a[i-l][j];

}

)

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

for(intk=0;k<2*(10-i)-l;k++){

System,out.print("");

)

for(intj=0;j<=i;j++){

System.out.print(a[i][j]+*");

)

System,out.printlnO;

)

}

)

【程序34]

題目:輸入3個數(shù)a,b,c,按大小順序輸出。

importjava.util.Scanner;

publicclasslianxi34{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System,in);

System.out.printin(“請輸入3個整數(shù):”);

inta=s.nextlnt();

intb=s.nextlnt();

intc=s.nextlnt();

if(a<b){

intt=a;

a=b;

b=t;

)

if(a<c){

intt=a;

a=c;

c=t;

}

if(b<c){

intt=b;

b=c;

c=t;

}

System.out.printin(“從大到小的順序輸出;

System,out.printIn(a+"”+b+”"+c);

)

)

【程序35]

題目:輸入數(shù)組,最大的與第一個元素交換,最小的與最后一個元素交換,輸出數(shù)組。

importjava.util.*;

publicclasslianxi35{

publicstaticvoidmain(String[]args){

intN=8;

int[]a=newint[N];

Scanners=newScanner(System,in);

intidxl=0,idx2=0;

System.out.printin(“請輸入8個整數(shù):”);

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

a[i]=s.nextInt();

}

System.out.printIn("你輸入的數(shù)組為:");

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

System.out.print(a[i]+”“);

)

intmax=a[0],min=a[0];

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

if(a[i]>max){

max=a[i];

idxl=i;

if(a[i]<min){

min=a[i];

idx2二i;

)

if(idxl!=0){

inttemp=a[0];

a[0]=a[idxl];

a[idxl]=temp;

)

if(idx2!=N-l){

inttemp=a[N-l];

a[N-l]=a[idx2];

a[idx2]=temp;

)

System,out.printIn(“\n交換后的數(shù)組為:”);

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

System,out.print(a[i]+””);

)

)

)

【程序36]

題目:有n個整數(shù),使其前面各數(shù)順序向后移m個位置,最后m個數(shù)變成最前面的m個數(shù)

importjava.util.Scanner;

publicclasslianxi36{

publicstaticvoidmain(String[]args){

intN=10;

int[]a=newint[N];

Scanners=newScanner(System,in);

System.out.printin(“請輸入10個整數(shù):”);

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

a[i]=s.nextlnt();

}

System.out.print(“你輸入的數(shù)組為:”);

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

System.out.print(a[i]+”“);

)

System.out.print("\n請輸入向后移動的位數(shù):”);

intm=s.nextlnt();

int[]b=newint[m];

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

b[i]=a[N-m+i];

)

for(inti=N-l;i>=m;i-){

a[i]=;

}

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

a[i]=b[i];

System.out.print(“位移后的數(shù)組是:");

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

System,out.print(a[i]+”“);

}

)

)

【程序37]

題目:有n個人圍成一圈,順序排號。從第一個人開始報數(shù)(從1至I」3報數(shù)),凡報到3

的人退出圈子,問最后留下的是原來第幾號的那位。

importjava.util.Scanner;

publicclasslianxi37{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System,in);

System,out.print(“請輸入排成一圈的人數(shù):”);

intn=s.nextlnt();

boolean[]arr=newboolean[n];

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

arr[i]=true;

)

intleftCount=n;

intcountNum=0;

intindex=0;

while(leftCount>1){

if(arr[index]==true){

countNum++;

if(countNum==3){

countNum=0;

arr[index]=false;

leftCount-;

)

)

index++;

if(index=n){

index=0;

}

)

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

if(arr[i]==true){

System.out.printin(“原排在第"+(i+l)+”位的人留下了?!?;

)

}

}

)

【程序38]

題目:寫一個函數(shù),求一個字符串的長度,在main函數(shù)中輸入字符串,并輸出其長度。

/*

*……題目意思似乎不能用length。函數(shù)*/

importjava.util.*;

publicclasslianxi38{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System,in);

System.out.printIn(“請輸入一個字符串:”);

Stringstr=s.nextLineO;

System.out.printin("字符串的長度是:w+str.length());

}

}

【程序39]

題目:編寫一個函數(shù),輸入n為偶數(shù)時,調(diào)用函數(shù)求1/2+1/4+…+l/n,當輸入n為奇數(shù)時,

調(diào)用函數(shù)1/1+1/3+…+l/n(利用指針函數(shù))

〃沒有利用指針函數(shù)

importjava.util.*;

publicclasslianxi39{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System,in);

System,out.print(“請輸入?個正整數(shù)n二“);

intn=s.nextlnt();

System,out.printin("相應數(shù)列的和為:”+sum(n));

)

publicstaticdoublesum(intn){

doubleres=0;

if(n%2=0){

for(inti=2;i<=n;i+=2)(

res+=(double)1/i;

)

}else{

for(inti=l;i<=n;i+=2){

res+=(double)1/i;

}

)

returnres;

)

i.

【程序40]

題目:字符串排序。

publicclasslianxi40{

publicstaticvoidmain(String[]args){

intN=5;

Stringtemp=null;

String[]s=newString[N];

s[0]="matter”;

s[l]="state”;

s[2]="solid”;

s[3]="liquid”;

s[4]="gas”;

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

for(intj=i+l;j<N;j++){

if(compare(s[i],s[j])==false){

temp=s[i];

s[i]=s[j];

s[j]=temp;

)

)

)

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

System,out.println(s[i]);

)

)

staticbooleancompare(Stringsi,Strings2){

booleanresult=true;

for(inti=0;i<sl.length()&&i<s2.length();i++){

if(si.charAt(i)>s2.charAt(i)){

result=false;

break;

}elseif(si.charAt(i)<s2.charAt(i)){

result=true;

break;

}else{

if(si.length()<s2.length()){

result=true;

}else{

result=false;

}

)

)

returnresult;

)

)

【程序41]

題目:海灘上有一堆桃子,五只猴子來分。第一只猴子把這堆桃子憑據(jù)分為五份,多了一個,

這只猴子把多的一個扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又

多了一個,它同樣把多的一個扔入海中,拿走了一份,第三、第四、第五只猴子都是這樣做

的,問海灘上原來最少有多少個桃子?

publicclasslianxi41{

publicstaticvoidmain(String[]args){

inti,m,j=0,k,count;

for(i=4;i<10000;i+=4)

{count=0;

m=i;

for(k=0;k<5;k++)

{

j=i/4*5+l;

i=j;

if(j%4==0)

count++;

elsebreak;

}

i=m;

if(count==4)

{System,out.printin("原有桃子"+j+"個");

break;}

)

}

)

【程序42]

題目:809*??=800*??+9*??+l其中??代表的兩位數(shù),8*??的結果為兩位數(shù),9*??的結果為3

位數(shù)。求??代表的兩位數(shù),及809*??后的結果。

〃題目錯了!809x=800x+9x+l這樣的方程無解。去掉那個1就有解了。

publicclasslianxi42{

publicstaticvoidmain(String[]args){

inta=809,b,i;

for(i=10;i<13;i++)

{b=i*a;

if(8*i<100&&9*i>=100)

System.out.printin(“809*”+i+”="+”800*”+i+”+”+”9*”+i+”="+b);}

)

}

【程序43]

題目:求0—7所能組成的奇數(shù)個數(shù)。

//組成1位數(shù)是4個。

〃組成2位數(shù)是7*4個。

//組成3位數(shù)是7*8*4個。

〃組成4位數(shù)是7*8*8*4個。

//……

publicclasslianxi43{

publicstaticvoidmain(String[]args){

intsum=4;

intj;

System.out.printin(“組成1位數(shù)是"+sum+"個");

sum=sum*7;

System.out.printin(“組成2位數(shù)是“+sum+"個");

for(j=3;j<=9;j++){

sum=sum*8;

System.out.printin(“組成”+j+”位數(shù)是“+sum+"個");

)

}

)

【程序44]

題目:一個偶數(shù)總能表示為兩個素數(shù)之和。

〃由于用除sqrt(n)的方法求出的素數(shù)不包括2和3,

〃因此在判斷是否是素數(shù)程序中人為添加了一個3o

importjava.util.*;

publicclasslianxi44{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System,in);

intn,i;

do(

System.out.print(“請輸入?個大于等于6的偶數(shù):”);

n=s.nextlnt();

}while(n〈6||n%2!=0);〃判斷輸入是否是>=6偶數(shù),不是,重新輸入

funfc=newfun();

for(i=2;i<=n/2;i++){

if((fc.fun(i))==l&&(fc.fun(n-i)==l))

{intj=n-i;

System.out.println(n+n="+i+”+“+j);

}〃輸出所有可能的素數(shù)對

)

)

)

classfun{

publicintfun(inta)〃判斷是否是素數(shù)的函數(shù)

(

inti,flag=0;

if(a==3){flag=l;return(flag);}

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

if(a%i==0){flag=0;break;}

elseflag=l;}

return(flag);〃不是素數(shù),返回0,是素數(shù),返回1

)

〃解法二

importjava.util.*;

publicclasslianxi44{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System,in);

intn;

do{

System.out.print(“請輸入一個大于等于6的偶數(shù):”);

n=s.nex

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論