Java基礎(chǔ)編程題(含答案)_第1頁
Java基礎(chǔ)編程題(含答案)_第2頁
Java基礎(chǔ)編程題(含答案)_第3頁
Java基礎(chǔ)編程題(含答案)_第4頁
Java基礎(chǔ)編程題(含答案)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

50道JAVA基礎(chǔ)編程練習題【程序1】題目:古典問題:有一對兔子 ,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死 ,問每個月得兔子對數(shù)為多少?程序分析: 兔子得規(guī)律為數(shù)列 1,1,2,3,5,8,13,21、、、、publicclassProg1{publicstat(yī)icvoid main(String[]args){?int n=10;System、out、println("第”+n+”個月兔子總數(shù)為” +fun(n));?}privatestaticintfun(int n){??if(n==1|| n==2)return1;elsereturnfun(n-1)+fun(n-2);?}}【程序2】題目:判斷 101-200之間有多少個素數(shù) ,并輸出所有素數(shù)。程序分析:判斷素數(shù)得方法 :用一個數(shù)分別去除 2到sqrt(這個數(shù)),如果能被整除,則表明此數(shù)不就是素數(shù),反之就是素數(shù) .public classProg2{?public static voidmain (String[] args){ntm=1;? intn=100 0;??intco unt =0;//統(tǒng)計素數(shù)個數(shù)??for(int i=m;i<n;i++){if(isPrime(i)){????count++;?? System、out、print(i+" ");if(count%10==0){System、

out、printl

n();?

?}???}}?

?System、out、println(System、out、print

);ln("在”+m

+"與"+n+"之間共有

"+count+"

個素數(shù)");?}?//判斷素數(shù)priva

testa

tic

boolean

isPrime(intn

){?

booleanfl

ag

=tru

e;?

if(n==1)?flag= false;else{?for(inti=2;i<=Math、sqrt(n);i++){?? if(

(n%i)==0

||

n==1){??

fla

=false

;break;}else? flag= true;}?}returnf

lag;?}}【程序

3】題目:打印出所有得"水仙花數(shù)”,所謂”水仙花數(shù)"就是指一個三位數(shù), 其各位數(shù)字立方與等于該數(shù)本身。例如:153就是一個”水仙花數(shù) ",因為153=1得三次方+5得三次方 +3得三次方。程序分析:利用for循環(huán)控制 100-999個數(shù),每個數(shù)分解出個位 ,十位,百位。public

clas

sProg3{?public

static voidmain(String []for(inti=100;i〈1000;

args){i++){if(is

Lotus(i))?

Syste

m、out、print

(i+"

”)

;}System、out、println();?}/判斷水仙花數(shù)privatest

at(yī)ic

boolean isLotus(

int

lotus){?int

m=

0;?intn=

lotus;?int

sum=0

;?m=n/100;n -=m*100;??sum =m*m*m;m=n/10;n-=m*10;sum+=m*m*m+n*n*n;if(sum==lotus)???returntru e;?else?returnfalse;}}【程序4】題目:將一個正整數(shù)分解質(zhì)因數(shù)。例如:輸入 90,打印出90=2*3*3*5。程序分析:對n進行分解質(zhì)因數(shù),應(yīng)先找到一個最小得質(zhì)數(shù)k ,然后按下述步驟完成:如果這個質(zhì)數(shù)恰等于n,則說明分解質(zhì)因數(shù)得過程已經(jīng)結(jié)束,打印出即可。(2)如果 n<〉k,但 n能被k整除,則應(yīng)打印出 k得值,并用 n除以k得商,作為新得正整數(shù)n,重復執(zhí)行第一步.(3)如果n不能被 k整除,則用k+1作為k得值,重復執(zhí)行第一步。publicclassP

rog4{publi

static

voidmain

(String[

arg

s){??intn=13;?depose(n);}rivatestat(yī)icvoiddepose(intn){??for

?System、out、print( n+”=");(inti =2;i〈n+1;i++) {??while(n%i==0&&n!=i){?n/=i;? System、out、print( i+”*”);?}???if(n==i){System、out、printl n(i);??break;}}}}【程序5】題目:利用條件運算符得嵌套來完成此題:學習成績 >=90分得同學用 A表示,60-89分之間得用B表示 ,60分以下得用 C表示。程序分析:(a〉b)?a:b這就是條件運算符得基本例子。publicclassProg5{ublicstaticvoidmain(String[]args){intn=-1;??try{?n=Integer、parseInt(args[0]);}cat(yī)ch(ArrayIndexOutOfBoundsExceptione){System、out、println(”請輸入成績");?return;}??grade(n);}//成績等級計算private stat(yī)ic void grade(intn){f(n>100||n〈0)System、out、println(”輸入無效");else{? Stringstr = (n〉=90)?"分,屬于A等”:((n〉60)?”分,屬于 B等":"分,屬于C等");System、out、println(n+str);}?}}【程序6】題目:輸入兩個正整數(shù) m與n,求其最大公約數(shù)與最小公倍數(shù)。程序分析:利用輾除法。public class Prog6{publicstaticvoid main(String[] args){intm,n;??try{?

m=

Integer、parseInt(a

rgs[0]);???n=

Integer、parseInt(args[1]);?}catch(ArrayIndexOutOfB

oundsExceptione)

{?System、out、println

(”輸入有誤

");?

?ret

urn;?}?max_min(m,n);?}求最大公約數(shù)與最小公倍數(shù)?pri

vate staticvoi d max_min(int

m,intn)

{??int

temp=1;?int

yshu

=1

;intbshu=m*n;if(n〈m){?temp=n;n=m;?m=temp;??}??while (m!=0){temp=n%m;?n=m;?m=temp;??}?yshu

=n

;bshu/= n;System、out、println(m+"與"+n+"得最大公約數(shù)為??System、out、println(m+”與"+n+”得最小公倍數(shù)為"

"+yshu);+bshu);}}【程序7】題目:輸入一行字符 ,分別統(tǒng)計出其中英文字母、空格、數(shù)字與其它字符得個數(shù) .程序分析:利用 while 語句,條件為輸入得字符不為 n’、impor

tj

ava、util

、Scanner;publiccla

ssProg7

_1{?publ

icstati

cvoidmai

n(Str

ing[]

args){??System、out、print(”請輸入一串字符: ");Scannerscan=newScanner(System、in);tringstr=scan、nextLine();//將一行字符轉(zhuǎn)化為字符串scan、close();?count(str);?}//統(tǒng)計輸入得字符數(shù)?private staticvoidcount(Stringstr){??String

E1=

”[\u4e0

0—\u9fa5]";//漢字StringE2

= ”[a—zA—Z]";Str

in

gE3

=

”[0-9]”;Stri

ng

E4

\s";//空格ntcountChinese=0;??intcountLetter=0;intcountNumber=0;intcountSpace=0;intcountOther=

0;??char[]arr

ay_Char=

str

、toCharArr

ay();//

將字符串轉(zhuǎn)化為字符數(shù)組??String[]array_

String=

newString[array_Char、length];//

漢字只能作為字符串處理or(inti=0;i〈array_Char、length;i++)array_Strin g[i]= Stri ng、valueOf(array_Char[i ]);//遍歷字符串數(shù)組中得元素?for(Strings:array_String){?if(s、matches(E1))? countChinese++;elseif(s、matches(E2))countLetter++;?elseif( s、matches(E3))countNumber++;?elseif(s、matches(E4))countSpace++;?elsecountOther++;}Syst

em、out、pri

ntln(”輸入得漢字個數(shù):

"+countChi

nese);??Syste

m、out、pri

ntln

("輸入得字母個數(shù):”

+countLetter);System、out、pri

ntln

("輸入得數(shù)字個數(shù):"

+countNumber);?

?System、out、println("輸入得空格個數(shù)System、out、println(”輸入得其它字符個數(shù)

:"+countSpace) ;:"+countSpace);}}importjapublic

va、util、*;class Prog7_2{public stat(yī)icvoid main(String[]args){System、out、println("請輸入一行字符:");Scannerscan =newScanner(System、in);? Stringst

=s

can、nextLine(

);scan

、cl

ose();co

unt(

str);}//統(tǒng)計輸入得字符privat(yī)estati

cvoid

count

(String str){List<String>

li

st

=new

ArrayList<String>()

;?

char[]

ar

ray_Char=

str、toCharArray();?for(char

c:arr

ay_Char)?

li

st、add(String、valueOf(c));/

/將字符作為字符串添加到

list

表中?

Collections

、sort(list

);//

排序for(S

tr

ing

s:list

){?intbegin=list、indexOf(s);intend=list、lastIndexOf(s);/索引結(jié)束統(tǒng)計字符數(shù)if(list、get(end)==s)??Syst em、out、println (”字符‘”+s+"’有"+(end-begin+1)+"個");}}}【程序8】題目:求s=a+aa+aaa+aaaa+aa、、、a得值,其中a就是一個數(shù)字.例如2+22+222+2222+2222(此時共有5個數(shù)相加),幾個數(shù)相加有鍵盤控制。程序分析:關(guān)鍵就是計算出每一項得值.importjav

a、util、

Scanner;publi

classP

rog8{publicstaticvoi dmain(String[ ]args){?System、out、print("求s=a+aa+aaa+aaaa+、、、得值,請輸入

a得值:");Scannerscan=newS

canner(System、in)

、useDelimiter(”\\s

*”);//

以空格作為分隔符inta=

scan、nextInt

();??int n =scan、nextInt() ;scan、close();//關(guān)閉掃描器System、out、println(expressed(2,5)+add(2,5));}?//求與表達式?pri

vat(yī)e

sta

tic Stringexpre

ssed(int

a,intn

){??String

Buffersb

=n

ewStringBuffer

();?

StringBu

ffer

subSB

=new

StringBuffer

();for(int i=1;i<n+1;i++){subSB=subSB、append(a);sb=sb、append(subSB);if(i<n)? sb= sb、append(”+");}sb、append(”=");return

sb、toString();}?//

求與priva

testlong

at(yī)iclongasum=0;

dd(int

a,int

n){??longsubSUM=0;for(inti =1;i<n+1;i++){?subSUM=subSUM*10+a;sum=sum+subSUM;}?returnsum;}}【程序9】題目:一個數(shù)如果恰好等于它得因子之與,這個數(shù)就稱為 "完數(shù)"。例如6=1+2+3、編程找出 1000以內(nèi)得所有完數(shù).publicclassProg9{?public

staticintn=10

voidmain(Str000;

ing[]

args){pNumber(n);}//求完數(shù)privat(yī)e staticvoid pNumber(intn){?int count = 0;System、out、println(n+ ”以內(nèi)得完數(shù): ");??for(inti =1;i<n+1;i++){intsum=0;for(intj=1;j〈i/2+1;j++){if((i%j)==0){?sum+=j;?if(sum==i){System、out、print(i+"");? if ((count++)%5==0)?System、out、println();}}???}}?}}【程序10】題目:一球從100米高度自由落下,每次落地后反跳回原高度得一半 ;再落下,求它在 第10次落地時,共經(jīng)過多少米?第10次反彈多高?importjava、util、Scanner;ublicclassProg10{publicst

at(yī)

ic

voidmain(String

[]

args

){??System、out、p

rin

t("請輸入小球落地時得高度與求解得次數(shù):”

);?Scannerscan

=new

Scanner(System、in)

、useDelimit

er(”

\\s

");int

h=

scan、nextIn

t()

;?

int

n =scan、next

Int();?scan、clos

e();??distance(h,n)

;?}//小球從h高度落下,經(jīng)privatestaticvoi

n次反彈后經(jīng)過得距離與反彈得高度ddistance(inth,intn){??doublele

ngth

=0;??for(int

i=0;

i〈n;i++){length+=h;h/=2、0;}System、out、println("經(jīng)過第"+n+”次反彈后,小球共經(jīng)過”+length+"米,"+"第”+n+”次反彈高度為”+h +”米");}}【程序11】題目:有1、2、3、4個數(shù)字,能組成多少個互不相同且無重復數(shù)字得三位數(shù) ?都就是多少程序分析:可填在百位、十位、個位得數(shù)字都就是1、2、3、 4.組成所有得排列后再去排列.publicclassProg11{

?掉不滿足條件得?public

stat(yī)i

voidm

ain(String[]args

){??intcount

=0;intn=0;??for(inti=1 ;i〈5;i++){???for

(int

j=1;j<5;j++){????i

f(j==i )?

?? conti

nue;for(int

k=1;k

<5;k++){if(k!=i && k!=j){n= i*100+j*10+k;?????System、out、print(n+"") ;??if((++count)%5==0)??System、out、println();??}}???}}System、out、println();?System、out、println(”符合條件得數(shù)共:"+count+"個");?}}【程序

12】題目:企業(yè)發(fā)放得獎金根據(jù)利潤提成。利潤(I)低于或等于元,低于20萬元時,低于10萬元得部分按10%提成,高于

10萬元時,獎金可提 10%;利潤高于10萬10萬元得部分,可可提成 7、5%;20萬到40萬之間時,高于20萬元得部分,可提成 5%;40萬到 60萬之間時高于4 0萬元得部分,可提成 3%;60萬到

100萬之間時

,高于60萬元得部分,可提成

1、5%,高于

100萬元時,超過

100萬元得部分按

1%提成,從鍵盤輸入當月利潤

I,求應(yīng)發(fā)放獎金總數(shù)?程序分析:請利用數(shù)軸來分界,定位 .注意定義時需把獎金定義成長整型。import java、io、*;publicclassProg12 {public stat(yī)icvo id main(String[]args){System、out、print(”請輸入當前利潤: ”);?longprofit =Long、parseLong(key_Input());? System、out、println("應(yīng)發(fā)獎金:"+bonus(profit) );}?//接受從鍵盤輸入得內(nèi)容privates

taticStr

ingkey

_Input(){String str =nulBufferedReader

l;bufIn

=new

Buff

eredReader(n

ewI

nputStreamReader(System、in

));??try{???str=bufIn、readLine();??}catch(IOExceptione){e、printStackTrace();finally{???try{bufIn、close();? }catch(IOException e){????e、printS tackTrace();?

}??}?ret

urn

str;}?//計算獎金?privatesta

tic longbonus(longprofit

){??long

prize

=0;long profit

_sub

=pr

ofit;??if(profit >1000000){??profi t=profit_sub-1000000;??profit_sub =1000000;prize+=profit*0、01;??}?if(profi t>600000){profit=profit_sub—600000;?profit_sub=600000;??prize+=profit*0、015;?}if(profit>400000){???profit=pr ofit_ sub-400000;???profit_s ub=400000;? ?prize+=profi t*0、03;}if(profit>200000){?profit= profit _sub—200000;profit_sub=200000;?prize+=pri ze*0、05;}?if(profit >100000){profit=profit_sub-100000;??profit_sub=100000;?prize+=profit*0、075;?}prize+= profit_sub*0、1;?returnprize;}}【程序1

3】題目:一個整數(shù),它加上10

0后就是一個完全平方數(shù),再加上

168又就是一個完全平方數(shù)

,請問該數(shù)就是多少?程序分析:在10萬以內(nèi)判斷

,先將該數(shù)加上1

00后再開方,再將該數(shù)加上

268后再開方

,如果開方后得結(jié)果滿足如下條件,即就是結(jié)果。publiccl ass Prog13{public

staticvoidmain

(String[

]args

){??int

n=0;for(inti=0;i〈100001;i++){? ?if(ispSqrt(i+100)&& ispSqrt(i+268)) {n=i;?break;?}?}System、out、println("

所求得數(shù)就是

:”+n);}?//

判斷完全平方數(shù)priva

testaticboolebooleanisp

anispSqrt(=false;

int

n)

{??for

(int

i=1

;i〈Math、sqrt(n)+1

;i++)

{???if(n==Math、pow(i,2)){?isp= true;break;?}?}returnisp;?}}【程序14】題目:輸入某年某月某日,判斷這一天就是這一年得第幾天 ?程序分析:以

3月5日為例,應(yīng)該先把前兩個月得加起來,然后再加上

5天即本年得第幾天

,特殊情況,閏年且輸入月份大于3時需考慮多加一天

.import

java

、util

、Scanner;public

classProg14

{public

static voi

dmain(String[]args)

{??Scanner scan =new Scanner(System、in)、useDelimiter("\\D?System、out、print(”請輸入當前日期 (年—月-日):");

");//

匹配非數(shù)字??inty

ear

scan

、nextInt();?intmonth=

scan、nextIn

t();??intdat

=sca

n、nextInt(

);scan、close(

);System、out、println

(”今天就是

"+year+

"年得第"

+anal

ysis(year,month,date)+"天");}?//判斷天數(shù)?privat(yī)estatic

intanalysis(intyear

,in

tmonth,

intdate)

{?intn=

0;?

int[]

month_date=newint

[] {0,31,28,31,30,31,30,31,31,30,31,

30};??if((year%400)==0||((year%4)==0)&&((year%100)!=0))month_date[2]=29;?for(int i=0;i<month;i++)n+=month_date[i];?returnn+date;?}}【程序15】題目:輸入三個整數(shù)

x,y,z,請把這三個數(shù)由小到大輸出

.程序分析

:我們想辦法把最小得數(shù)放到

x上,先將

x與y進行比較,如果

x>y則將

x與y

得值進行交換

,然后再用x與z進行比較

,如果

x>z則將

x與z得值進行交換

,這樣能使

x最小。importjava

、util

、Scanner;public

cla

ssProg

15{?publicstaticv

oid

main(Strin

g[]

args){?

Scanner

scan

=new

Scanner(Syste

m、in)、useDelimiter

(”

D”);System、out、print(”請輸入三個數(shù):”);?intx=scan、nextInt();??inty=scan、nextInt();?intz=scan、nextInt();??scan、close();?System、out、println(”排序結(jié)果:”+sort(x,y,z));}?//比較兩個數(shù)得大小?privat(yī)estaticStringsort(intx,inty,intz){?Strings=null;??if(x>y){intt=x;???x = y;???y=t;??}if(x>z){?? intt

=x;? ?x=

z;z=t;?}if(y〉z){? intt=z ;?z=y;?y=t;}s=x+””+y+""+z;??returns;}}【程序16】題目:輸出 9*9口訣.程序分析:分行與列考慮 ,共9行9列,i 控制行,j控制列。publiccl

ass

Prog16{?publicsta

ti

cvoidmain(Strin

g[]

args){for(i

nti=1

;i〈10;i++

){?

for(

intj=1

;j〈i

+1;j++

)??System、out、print(j+"*”+i+"="+(j*i)+”");?? System、out、printl n();?}?}}【程序17】題目:猴子吃桃問題:猴子第一天摘下若干個桃子 ,當即吃了一半,還不癮,又多吃了一個 第二天早上又將剩下得桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下得一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。程序分析:采取逆向思維得方法 ,從后往前推斷。publicclass Prog17{publicstati cvoidmain(Strin g[]arg

s){?intm= 1;for(inti=10;i〉0;i-—)m=2*m+2;System、out、println("小猴子共摘了"+m+"桃子");?}}【程序18】題目:兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人.已抽簽決定比賽名單。有人向隊員打聽比賽得名單。

a說她不與

x比,c說她不與

x,z

比,請編程序找出三隊賽手得名單

.impo

rtja

va、util

、Array

List;publ

icclass

Prog18{Stri

ng

a,b,c;//甲隊成員?publicstati

voidmain

(String

[]

args){Str

ing[

]r

acer

={"x"

,”y","z

”};//

乙隊成員Arr

ayList<Prog1

8> arrayList

newArr

ayList〈Prog18>();for

(inti

=0;i<3

;i++)??for(intj=0

;j

〈3;j++

)for(intk=0;k<3;k++){?

?Prog18pro

g18

=newPr

og18(racer[i],ra

cer[j]

,racer[k])

;if(!prog1

8、a、equals(prog18、b)&&!pr

og18、a、eq

uals

(prog18、c) && ?。餽og18、b、equals

(prog18、c)&&?? ?!p rog18、a、equals(

"x”)

&& !prog18、c、equals("x”)&&!p

rog18、c、equals(”z"))?arrayList、add(prog18);}for(Objectobj:arrayList)? System、out、println(obj);}?//構(gòu)造方法privat eProg18(String a,String b,Stri ng c){?this、a=a;this、b=b;??this、c =c;}?publicStri ng

toStri

ng(){return"a

得對手就是

"+a+”

”+”b得對手就是"

+b+"

"+

”c得對手就是"

+c;}}【程序

19】題目:打印出如下圖案(菱形 )********************程序分析:先把圖形分成兩部分來瞧待 ,前四行一個規(guī)律 ,后三行一個規(guī)律 ,利用雙重 for 循環(huán),第一層控制行,第二層控制列。publicc

lass

Prog19{publi

stat

ic

voi

dmain(String[]

args){??intn=

5;print

Star

(n);?}打印星星privatestaticvoid printStar(intn ){打印上半部分??for(inti=0; i<n;i++){for(intj=0;j〈2*n;j++){?if(j〈n—i)?

if(j

System、out、print(”>=n-i&&j<=n+i)

”);System、out、print(”*”);}System、out、println();?}打印下半部分?for(int i=1;i 〈n;i++){?System、out、print("”);?for(intj=0;j<2*n—i;j++){??if(j<i)?System、out、print("”);?if(j>=i&&j<2*n—i-1)??? System、out、print("*") ;? }??System、out、println();??}}}【程序

20】題目:有一分數(shù)序列:

2/1,3/2,5/

3,8/5,13/8,21/13、、、求出這個數(shù)列得前

20項之與。程序分析:請抓住分子與分母得變化規(guī)律。publiccl

assPr

og20{?publi

c stati

void

main(String[]a

rgs){?double

n1=

1;??doubl

n2

=1;??doubl

ef

raction =n1/n2;doubleSn=0;?for(inti= 0;i<20;i++){?? doublet

= n1;double

t2=

n2;n1=t1+t2;??n2=t 1;fraction=n1/n2;Sn+=fr action;}?System、out、print(Sn);?}}【程序21】題目:求1+2!+3!+、、、+20!得與程序分析:此程序只就是把累加變成了累乘 .public classProg21{publicstati

voidm

ain(

St

ring[]a

rgs){??longsum=0

;for(inti=0;i<20;i++)?? sum += factorial(i+1);??System、out、println (sum);?}階乘?private

staticl

ong

factorial(intn

){?

int

mult=

1;??for(inti= 1;i<n+1;i++)?mult* =i;returnmult;?}}【程序22】題目:利用遞歸方法求 5!。程序分析:遞歸公式: fn=fn_1*4!public

cl

assP

rog22{?publicstatic

void

main(Stri

ng[]ar

gs){Syst

em、out、println(fact

(10));?}//遞歸求階乘?privatestaticl ong fact(int n){f(n==1)return1;??elsereturnfact(n-1)*n;}}【程序23】題目:有5個人坐在一起,問第五個人多少歲?她說比第 4個人大2歲。問第4個人歲數(shù) ,她說比第3個人大2歲。問第三個人,又說比第 2人大兩歲.問第2個人,說比第一個人大兩歲。最后問第一個人 ,她說就是10歲.請問第五個人多大?程序分析:利用遞歸得方法,遞歸分為回推與遞推兩個階段。 要想知道第五個人歲數(shù) ,需知道第四人得歲數(shù),依次類推,推到第一人 (10歲),再往回推。public classPr og23{publicstat icvoidmain(String[]args ){System、out、println(getAge(5,2));?}?//求第m位同志得年齡?privatestatic int getAge(intm,intn){??if(m==1)??ret urn 10;??else??ret urngetAge(m-1,n)+n;?}}【程序24】題目:給一個不多于

5位得正整數(shù),要求:一、求它就是幾位數(shù),二、逆序打印出各位數(shù)字

.public

class

Prog24{publi

cstat(yī)ic

voidmain

(String[] args){??intn?int

=Inti

eger=0;

、parseInt(

args[0]);?int[]a =newint [5];??do{??a[i]=n%10;n/=1

0;++i

;while(n!=0);System、out、print

("這就是一個”+i

+"位數(shù),從個位起

,各位數(shù)字依次為

:"

);??for(int

j=0;j<i;j+

+)?System

、out、print

(a[j]+

”")

;?}}【程序2

5】題目:一個

5位數(shù),判斷它就是不就是回文數(shù)。即

12321就是回文數(shù),個位與萬位相同,十位與千位相同.import java、io、*;publicclas s Prog25{?public static void

main(

Stri

ng[]args){intn=0

;??System、out、print(

”請輸入一個 5位數(shù):”);??Buffer

edReaderbufin

=new BufferedReader(new

Inpu

tStreamReader(System、in));?tr

y{n=Integer、parseInt(bufin、readLine());??}cat(yī)ch(IOExceptione){?e、printStackTrace();? }final ly{try{?bufin、close();?}catch(IOExceptione){????e、printStackTrace();}}palin(n);}?private stat

icvoi

dpali

n(int

n)

{?intm=n;?

int[]a=new?if(n〈10000

int[5];||n>99999){System、out、println("輸入得不就是5位數(shù)!”);?return;}else{or(inti=0;i<5;i++){???a[i ]=n%10;?n/=10;}if(a[0]==a[4]&&a[1]==a[3])Sy stem、out、println(m+"就是一個回文數(shù)” );elseSystem、out、println(m+ ”不就是回文數(shù)” );}}}【程序26】題目:請輸入星期幾得第一個字母來判斷一下就是星期幾 ,如果第一個字母一樣 ,則繼續(xù) 判斷第二個字母程序分析:用情況語句比較好 ,如果第一個字母一樣 ,則判斷用情況語句或 if 語句判斷第二個字母。import java、io、*;publicclass Prog26{?public static voidmain(String []args){? String str= newString( );

.Buff

eredRead

erbufIn

=new

Buffer

edReader(newIn

putStreamReader(Sysem、in));?System、out、print(”請輸入星期得英文單詞前兩至四個字母): ");try{str=bufIn、readLine();}cat(yī)ch(I OException e){e、printStackTrace();?}fin ally{try{ufIn、close();?? }cat(yī)ch(IOException e){? e、printStackTrace();}}week(str);?}?privatestaticvoidweek(S

tring

str

){??intn

=-1

;if(str、trim()

、equalsI

gnoreCase("Mo")||str、tri

m()、equalsIgnoreCase("Mon")|| str、trim()、equalsIgnoreCase("Mond”))n=1;??if(str、trim()、equalsIgnoreC ase(”Tu")||sue”) || str、trim()、equalsIgnoreCase(

tr、trim"Tues”))

()、equalsIgnoreCase(

"Tn=

2;if(

str

、trim()、equalsI

gnoreCase(”We

")|

|str、trim()、equal

sIgnoreCase("Wed")

||

str

、tr

im()、equalsIgnoreCase(”Wedn"

))n=

3;??if(str、trim()、equalsIgnoreCase(”Th")||str 、trim

()、equalsIgnor

eCase("Thu") || str、trim()、equalsIgnoreCase("Thur"))n=4;??if(str、trim()、equalsIgnor eCase("Fr") ||str 、trim()、equalsIg

noreCase("Fri

”)|| str、trim()、equalsIgnoreCase("Fri d"))n=5;?if( str、trim()、equalsIgnoreCase("Sa”) ||str、trim( )、equalsIgnoreCse("Sat(yī)")||str、trim()、equalsIgnoreCase(”Satu"))n=2;if(str 、trinoreCase(”Sun")|| s

m()、equalsIgnoreCase("Su")||strtr、trim() 、equalsIgnoreCase(”Sund”))

、trim()、equals

Ign =0;??switch(n){?case1:System、out、println("星期一”);? break;case2:???System、out、println("星期二”);break;case3:? System、out、println ("星期三");???break;?case4:System、out、println(”星期四”);break;case5:? Syste m、out、printl n(”星期五");???break;case6:??Syst em、out、printl n("星期六");break;?case0:System、out、println(”星期日”);?break;default:? ?System、out、println ("輸入有誤!” );break;?}}}【程序27】題目:求100之內(nèi)得素數(shù)publicc lassProg27{publicstatic

void

main(String

[]

args)

{int

n=

100;??System、out、print(n+"以內(nèi)得素數(shù):"for(inti=2;i 〈n+1;i++){??if(isPrime (i))?? System、out、print(i+" ");

);??}}//求素數(shù)priva

te

stat(yī)icb

ooleanis

Prime(int

n){?booleanflag=t

rue;for(inti=2 ;i<Math、sqrt(n)+1 ;i++)if(n%i==0){?f lag = false;break;??}returnflag;}}【程序28】題目:對10個數(shù)進行排序程序分析:可以利用選擇法,即從后9個比較過程中,選擇一個最小得與第一個元素交換,下次類推,即用第二個元素與后8個進行比較,并進行交換。publicclassProg28{?publicstaticvoidmain(String[]args){??int[]a=newint[]{31,42,21,50,12,60,81,74,101,93};??for(inti=0;i〈10;i++)???for(intj=0;j<a、length-i-1;j++)???if(a[j]〉a[j+1]){????inttemp=a[j];a[j]=a[j+1];?? ?a[j+1] =temp;}??for(int i=0;i<a、length;i++)?S

ystem、out、prin

t(a[i

]+"

”);}}【程序

29】題目:求一個3*3矩陣對角線元素之與程序分析:利用雙重 for 循環(huán)控制輸入二維數(shù)組

,再將

a[i][i]

累加后輸出

.publicc

lassProg2

9{?public

staticint[] []

voida =

main(Stnewint

ring[]args){[][] {{100,2

,3,},{

4,5,6},

{17,8,9}};?mat(yī)rSum(a);?}privatest

at(yī)ic

void

matr

Sum(int[

][]

a){??intsum1=0;?

intsum2=0

;?fo

r(in

ti=0;i〈a、length;i++)for

(int

j=0;j

〈a[i]

、length;j++)

{?if

(i==j)su

m1

+=a[i][j

];?

?if(j==a、len

gth-i-1)

sum2 +=

a[i][j];}System、out、println ("矩陣對角線之與分別就是: "+sum1+"與"+sum2);}}【程序30】題目:有一個已經(jīng)排好序得數(shù)組 .現(xiàn)輸入一個數(shù),要求按原來得規(guī)律將它插入數(shù)組中。程序分析:首先判斷此數(shù)就是否大于最后一個數(shù) ,然后再考慮插入中間得數(shù)得情況, 插入后此元素之后得數(shù) ,依次后移一個位置。importjava、util、Scanner;publicclassProg30{publicstaticvoidmain(String[]args){?int[]A=newint[]{0,8,7,5,9,1,2,4,3,12};int[]B=sort(A);?print(B);??System、out、printl

n();Sy

stem、out、pri

nt(”請輸入

10個數(shù)得數(shù)組:");Scannersc

an

=n

ew

Sca

nner(System、in); ?inta=s

can、nextInt

();scan、close();int[]C= insert(a,B);print(C);}選擇排序?private

staticintint[]

[]sort( int[]A ){=new int[A、length]

;?for(inti=

0;i

<A、length-1;i++){?

?int

min

= A[i]

;?

for

(int

j=i

+1;j

〈A、length;j++)

{if

(min>A[j

]){?

?inttemp=min;??? ?min=A

[j];A[j]=tem

p;?

}?B[i]

=min;}}?B[A、length-1]=A[A、length-1];returnB;?}/打?。餽ivat estatic voidprin t(int[]A){??for(inti= 0;i<A、length;i++)System、out、print(A[i]+"");?}插入數(shù)字?privatestatic int[]insert (int a,int[??int[]B= new int[A、length+1];??for(i nt i=A、length-1;i〉0;i——)

]A){if(a〉A(chǔ)[i]){?B[i+1]=a;? fo r(intj=0 ;j〈=i;j++)B[j]=A[j];? for (int k=i+2;k<B、length;k++)B[k]=A [k—1];break;??}returnB;?}}【程序31】題目:將一個數(shù)組逆序輸出。程序分析:用第一個與最后一個交換 .public classProg31{publicstatic voidmain(String[] args){?int[] A=newint[]{1,2,3,4,5,6,7,8,9,};??print(A);System、out、println();?int[]B =revers e(A);??print(B);?}pri

vat(yī)estati

cin

t[]

reverse(int

[]

A){for

(int

i=0;i<A、length/2

;i++){inttemp=A[A、length—i-1];A[A、length-i—1]=A[i];??A[i] =temp;?}eturnA;?}priva

testa

ticv

oid

print

(int

[]

A){for(inti=0

;i〈A、

length;i++)??Sy

stem、out、prin

t(A[i

]+"

”);?}}【程序32】題目:取一個整數(shù) a從右端開始得 4~7位。程序分析:可以這樣考慮:(1)先使a右移4位。(2)設(shè)置一個低 4位全為1,其余全為0得數(shù)??捎脋(~0<<4)(3)將上面二者進行&運算。importjava

、util

、Scanner;publiccl

assProg3

2{?public

static

voi

dmain(St

ri

ng[]

msg){??//

輸入一個長整數(shù)??Scanner scan=new Scanner(System、in);longl=scan、nextLong();??scan、close();//以下截取字符??Str?

ingstr=Lon?char[]intn=ch

g、toSch=str、length;

tring(l );、toCharArr

ay();if

(n<7)??S

yste

m、out、prin

tln("輸入得數(shù)小于

7位!");else??System、out、println("截取得4~7位數(shù)字:”+ch[n—7]+ch[n-6]+ch[n—5]+ch[n—4]);}}【程序33】題目:打印出楊輝三角形(要求打印出10行如下圖)程序分析:11 11211 3 311464115 101051publicclassProg33{publicstat

ic

voidmain(String[]

args){int[][

]n=

new int[10][

21];n[0][10]

=1;??for(inti

=1;i<10

;i++

)?

for(i

nt

j=1

0-i;j<

10+i+1;

j++)? n

[i][

j]=n

[i

—1][

j-1]+n[i-1][j+

1];for(int

i=0;i<10

;i++){for(in

tj

=0;j

〈21;j++

){??? if(n[i

][j]

==0)?

System、out、print("

”);???el

se{?

?

if(n[i][j]<10)Syste m、out、print ("elseif (n[i][j]<100)

"+n[i][j]

);//空格為了美觀需要?? System、out、print (”"+n[i][j]) ;else?System、out、print(n[i][j]);?}??}??System、out、println( );}}}【程序34】題目:輸入3個數(shù)a,b, c,按大小順序輸出。程序分析:利用指針方法。importjava

、uti

l、Scanner;publiccl

assProg34{publics

tatic

voidmai

n(String[]

args){System、out、print(”請輸入3個數(shù):”);?

Scannersc

an

newScanner

(System、in)、useDeli

miter("\

s”);?inta

=scan、nextInt(

);??int

=s

can、nextI

nt()

;??intc= scan、nextInt ();scan、close();?if(a<b){?? intt = a;=b;? b = t;}?

if(a 〈c)intt=

{a;a=c;??c=t;}??if(b〈c){??intt=b;??b=c;?c=t;?}?System、out、println(a+"”+b+""+c);?}}【程序35】題目:輸入數(shù)組,最大得與第一個元素交換 ,最小得與最后一個元素交換 ,輸出數(shù)組。importjava、util、Scanner;publicclassProg35{publicstaticvoidmain(String[]args){??System、out、print(”請輸入一組數(shù):");Scannerscan=newScanner(System、in)、useDelimiter(s");?int[]a=newint[50];?intm=0;??while(scan、hasNextInt()){??a[m++]=scan、nextInt();??}scan、close();int[]b =newint[m];??for(inti=0 ;i<m;i++)?? b[i]= a[i];??for(int i=0;i〈b、length;i++ )for(intj=0;j<b、length-i—1;j++)?if(b[j]〈b[j+1]){??? ?int

temp=

b[j];?

??b[j

]=b[

j+1];????b[j+1]

=

temp;?}for(inti=0;i〈b、length;i++)??Sys

tem、out、print(b[i]+"

");}}【程序

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

,最后

m個數(shù)變成最前面得

m個數(shù)import

java

、util

、Scanner;publi

cclassPro

g36{publi

static

voidm

ain(String

[]

args

){?

fi

nal

intN

=10;System、out、print("請輸入10個數(shù)得數(shù)組:");?Scannerscan=newScanner(System、in);??int

[]a=

newin

t[N]

;??for(inti= 0;i<a、length;i++)a[i ] =scan、nextInt();? System、out、print(”請輸入一個小于

10得數(shù):")

;?

int

m=

scan、nextInt

();scan、clo

se();?int

[] b= new int[m]int[]c=ne wintfor(inti=0;i

;[N—m];<m;i++)b[i]=a[i

];for(inti=m,j=0;i<N;i++,j++)c[j

]=

a[i

];??for(int

i=0;i〈N—m;i++)?

a[i]

=c[i

];?for

(int

i=N-m,j=0;i

<N;i++,j++)??a[i]=b[j]

;?

for(int

i=0;i

〈a、length;i++)?System、out、print (a[i]+"");?}}【程序37】題目:有n個人圍成一圈,順序排號。從第一個人開始報數(shù)

(從

1到3報數(shù)),凡報到3得人退出圈子,問最后留下得就是原來第幾號得那位

.import

java、util

、Scanner;public

classPr

og37{public

staticvoi

d main(String[]a

rgs){System、out、print("請輸入一個整數(shù):”);??Scanner

scan=

new

Scanner(System、in);int

n=

scan、nextInt

();?scan、close();//定義數(shù)組變量標識某人就是否還在圈內(nèi)boolean[]

isIn=

newboolean[n]

;??for(int

i=0;i

〈isI

n、l

ength;i++)?? isIn[i]

tru

e;//定義圈內(nèi)人數(shù)、報數(shù)、索引??int inCount= n;intcountNum=0;intindex=0;??while(inCount〉1){?if(isIn[index]){???countNum++;???if(countNum==3){??countNum=0;?isIn[index]= false;?inCount-—;? }??}???index++;f(index==n)? index= 0;??}for(inti=0;i<n

;i++)?

if(i

sIn[i

])System、out、println(”留下得就是: "+(i+1));?}}【程序38】題目:寫一個函數(shù),求一個字符串得長度 ,在main函數(shù)中輸入字符串 ,并輸出其長度。import

java

、util、S

canner;public

class

Prog38{?publics

tat(yī)i

void main(String[

]args){System、out、print ("請輸入一串字符

:"

);?Scanner

sc

an

=new

Scanner(S

ystem、in)、useDelimit

n”);??Strings

trIn=s

can、next();?

scan、close();char[]

ch=

strIn

、toCharArray();??System、out、println

(strIn

+”共"+(ch、length—1)+"個字符”

);}}【程序39】題目:編寫一個函數(shù),輸入

n為偶數(shù)時,調(diào)用函數(shù)求

1/2+1/4

+、、、+

1/n,當輸入n為奇數(shù)時

,調(diào)用函數(shù)1/1+1/3+、、、+1/n(利用指針函數(shù))mportjava、util、Scan

溫馨提示

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

評論

0/150

提交評論