




版權(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
g
=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
c
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
r
=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
c
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
c
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
e
=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
c
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
c
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
c
void
main(String[]a
rgs){?double
n1=
1;??doubl
e
n2
=1;??doubl
ef
raction =n1/n2;doubleSn=0;?for(inti= 0;i<20;i++){?? doublet
1
= 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
c
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[]
B
[]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
b
=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
c
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
c
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中學道法面試題及答案
- 2025春節(jié)復工復產(chǎn)方案
- 2025年法紀知識網(wǎng)上測試題及答案
- 2025-2030年中國種農(nóng)劑數(shù)據(jù)監(jiān)測研究報告
- 2025-2030年中國下置缸四柱式油壓機數(shù)據(jù)監(jiān)測研究報告
- 部編版小學語文三年級下冊期末試卷(江蘇揚州江都2020年真卷含答案)
- Unit 6 Is he your grandpa?第1課時Cartoon time作業(yè)設(shè)計 (含答案)
- 計算機網(wǎng)絡(luò)協(xié)議知識點詳解與試題
- 變電站磚砌防火墻施工方案
- 電子競技比賽平臺賽事組織規(guī)則
- 畜牧場經(jīng)營管理
- 課程思政示范課程申報書(測繪基礎(chǔ))
- ALeader 阿立得 ALD515使用手冊
- 神華陜西國華錦界電廠三期工程環(huán)評報告
- 飛行員航空知識手冊
- GB/Z 19848-2005液壓元件從制造到安裝達到和控制清潔度的指南
- GB/T 34936-2017光伏發(fā)電站匯流箱技術(shù)要求
- GB/T 12618.4-2006開口型平圓頭抽芯鉚釘51級
- 紅金大氣商務(wù)風領(lǐng)導歡迎會PPT通用模板
- 學前教育學00383-歷年真題-試卷
- 第二章農(nóng)業(yè)信息采集與處理課件
評論
0/150
提交評論