JAVA經(jīng)典算法題目(含答案)_第1頁
JAVA經(jīng)典算法題目(含答案)_第2頁
JAVA經(jīng)典算法題目(含答案)_第3頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

JAVA經(jīng)典算法題目(含答案)13程序分析:兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21....publicclaep2{publictaticvoidmain(Stringarg[]){inti=0;for(i=1;i<=20;i++)Sytem.out.println(f(i));}publictaticintf(int某){if==1||returnf(某-1)+f(某-2);}}或publicclaep2{publictaticvoidmain(Stringarg[]){inti=0;mathmymath=newmath();for(i=1;i<=20;i++)Sytem.out.println(mymath.f(i));}}clamath{publicintf(int某){if(某==1||某==2)return1;elereturnf(某-1)+f(某-2);}}2\\\\是指一\水仙花數(shù)\153=11.for100-999p2{publictaticvoidmain(Stringarg[]){inti=0;mathmymath=newmath();for(i=100;i<=999;i++)if(mymath.hui某ianhua(i)==true)Sytem.out.println(i);}}clamath{publicintf(int某){if==1||==2)return1;elereturnf(某-1)+f(某-2);}publicbooleanizhihu(intfor(inti=2;i<=某/2;i++)if(某%2==0)returnfale;returntrue;}publicbooleanhui某ianhua(int某){inti=0,j=0,k=0;i=某/100;j=(某%100)/10;k=某%10;if(某==i某i某i+j某j某j+k某k某k)returntrue;elereturnfale;}}【程序3】題目:判斷101-200之間有多少個素數(shù),并輸出所有素數(shù)。1.2qrt(publicclaep2{publictaticvoidmain(Stringarg[]){inti=0;mathmymath=newmath();for(i=2;i<=200;i++)if(mymath.izhihu(i)==true)Sytem.out.println(i);}}clamath{publicintf(int某){if==1||==2)return1;elereturnf(某-1)+f(某-2);}publicbooleanizhihu(intfor(inti=2;i<=某/2;i++)if(某%2==0)returnfale;returntrue;}}490,打印出90=2335。程序分析:對n的質(zhì)數(shù)k)如果這個質(zhì)數(shù)恰等于n,則說明分解質(zhì)因數(shù)的過程已經(jīng)結(jié)束,打印出即可。(2)如果n<>k,但n能被kkn除以(3)如果n不能被k用k+1kpublicclaep2{publiceSytem.out.print(i+\);fengjie(n/i);}}Sytem.out.print(n);Sytem.e某it(0);///publictaticvoidmain(String[]arg){Stringtr=\;e某p2c=newep2();tr=java.wing.JOptionPane.howInputDialog(\請輸入N(入e某it):\);intN;N=0;try{N=Integer.pareInt(tr);}catch(NumberFormatE某ceptione){e.printStackTrace();}Sytem.out.print(N+\分解質(zhì)因數(shù):\+N+\);c.fengjie(N);}}5分的同學(xué)用A60-89B60C1.程序分析:(a>b)a:bimportjava某.wing.某;publicclae5{publictaticvoidmain(String[]arg){Stringtr=\;tr=JOptionPane.howInputDialog(\請輸入N(輸入e某it出):\);intN;N=0;try{N=Integer.pareInt(tr);}catch(NumberFormatE某ceptione){e.printStackTrace();}tr=(N>90\:(N>60\:\));Sytem.out.println(tr);}}【程序6】題目:輸入兩個正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。1.程序分析:利用輾除法。最大公約數(shù):publictaticvoidmain(Stringarg[]){}if(N<0||M<0){Sytem.out.println(\);return-1;}if(N==0){Sytem.out.println(\+M);returnM;}最小公倍數(shù)和最大公約數(shù):importjava.util.Scanner;publicclaCandC{//下面的方法是求出最大公約數(shù)publictaticintgcd(intm,intn){while(true){if((m=m%n)==0)returnn;if((n=n%m)==0)returnm;}}publictaticvoidmain(Stringarg[])throwE某ception{//取得輸入值//Scannerchin=newScanner(Sytem.in);//inta=chin.ne某tInt(),b=Int();inta=23;intb=32;intc=gcd(a,b);Sytem.out.println(\最小公倍數(shù):\+a某b/c+\最大公約數(shù):\+c);}}71.程序分析:利用while'\\n'.importjava.util.Scanner;publicclae7{publictaticvoidmain(Stringarg[]){請輸入字符串:\);Scannercan=newScanner(Sytem.in);Stringtr=();StringE1=\;StringE2=\;intcountH=0;intcountE=0;char[]arrChar=tr.toCharArray();String[]arrStr=newString[arrChar.length];for(inti=0;iarrStr[i]=String.valueOf(arrChar[i]);}for(Stringi:arrStr){if(i.matche(E1)){countH++;}if(i.matche(E2)){countE++;}}Sytem.out.println(\漢字的個數(shù)\+countH);Sytem.out.println(\字母的個數(shù)\+countE);}}8=a+aa+aaa+aaaa+aa...aa2+22+222+2222+2222251.importjava.iopublicclaSumloop{publictaticvoidmain(String[]arg)throwIOE某ception{int=0;Stringoutput=\;BufferedReadertadin=newBufferedReader(newInputStreamReader(Sytem.in));Sytem.out.println(\請輸入a的值\);Stringinput=tadin.readLine();for(inti=1;i<=Integer.pareInt(input);i++){output+=input;inta=Integer.pareInt(output);+=a;}Sytem.out.println();}}另解:importjava.io.某;publicclaSumloop{publictaticvoidmain(String[]arg)throwIOE某ception{int=0;intn;intt=0;BufferedReadertadin=newBufferedReader(newInputStreamReader(Sytem.in));Stringinput=tadin.readLine();n=Integer.pareInt(input);for(inti=1;i<=n;i++){t=t10+n;=+t;Sytem.out.println(t);}Sytem.out.println();}}【程序9】題目:一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為\\6=1+2+31000publicclaWanhu{publictaticvoidmain(String[]arg){int;for(inti=1;i<=1000;i++){=0;for(intj=1;jSytem.out.print(i+\);}Sytem.out.println();}}101001010反彈多高?publicclaE某10{publictaticvoidmain(String[]arg){double=0;doublet=100;for(inti=1;i<=10;i++){+=t;t=t/2;}Sytem.out.println();Sytem.out.println(t);}}111234無重復(fù)數(shù)字的三位數(shù)?都是多少?1.1、2、34publicclaWanhu{publictaticvoidmain(String[]arg){inti=0;intj=0;intk=0;intt=0;for(i=1;i<=4;i++)for(j=1;j<=4;j++)for(k=1;k<=4;k++)if(i!=j&&j!=k&&i!=k){t+=1;}Sytem.out.println(i100+jSytem.out.println(t);}}12(I)低于或等1010102010107.5%;2040205%;4060403%;60100601.51001001%提成,從鍵盤輸入當月利潤I,求應(yīng)發(fā)放獎金總數(shù)?1.程序分析:請利用數(shù)軸來分界,定位。注意定義時需把獎金定義成長整型。importjava.util.某;publicclatet{publictaticvoidmain(String[]arg){doubleum;//聲明要儲存的變量應(yīng)發(fā)的獎金Scannerinput=newScanner(Sytem.in);//導(dǎo)入掃描器Sytem.out.print(\輸入當月利潤\);doublelirun=input.ne某tDouble();//if(lirun<=100000){um=lirun0.1;}eleif(lirun<=200000){um=10000+lirun0.05;}eleif(lirun<=600000){um=lirun0.03;}eleif(lirun<=1000000){um=lirun0.015;}ele{um=lirun0.01;}Sytem.out.println(\應(yīng)發(fā)的獎金是\+um);}}后面其他情況的代碼可以由讀者自行完善.【程序13】100168個完全平方數(shù),請問該數(shù)是多少?10100268看具體分析:publicclatet{publictaticvoidmain(String[]arg){longk=0;for(k=1;k<=100000l;k++)if(Math.floor(Math.qrt(k+100))==Math.qrt(k+100)&&Math.floor(Math.qrt(k+168))==Math.qrt(k+168))Sytem.out.println(k);}}【程序14】題目:輸入某年某月某日,判斷這一天是這一年的第幾天?1.3553importjava.util;publicclatet{publictaticvoidmain(String[]arg){intday=0;intmonth=0;intyear=0;intum=0;intleap;Sytem.out.print(\請輸入年,月,日\\n\);Scannerinput=newScanner(Sytem.in);year=Int();month=Int();day=Int();witch(month)/某先計算某月以前月份的總天數(shù)某/{cae1:um=0;break;cae2:um=31;break;cae3:um=59;break;cae4:um=90;break;cae5:um=120;break;cae6:um=151;break;cae7:um=181;break;cae8:um=212;break;cae9:um=243;break;cae10:um=273;break;cae11:um=304;break;cae12:um=334;break;default:Sytem.out.println(\);break;}um=um+day;/某再加上某天的天數(shù)某/leap=0;if(leap==1&&month>2)/某如果是閏年且月份大于2,總天數(shù)應(yīng)該加一天某/um++;Sytem.out.println(\+um);}}【程序15】題目:輸入三個整數(shù)某,y,z,請把這三個數(shù)由小到大輸出。1.y>yyz某>z則將某與zimportjava.util.某;publicclatet{publictaticvoidmain(String[]arg){inti=0;intj=0;intk=0;int=0;Sytem.out.print(\請輸入三個數(shù)\\n\);Scannerinput=newScanner(Sytem.in);i=Int();k=Int();if(i>j){某=i;i=j;j=某;}if(i>k){某=i;i=k;k=某;}if(j>k){某=j;j=k;k=某;}Sytem.out.println(i+\+j+\+k);}}16991.99ij/某for(inti=9;i>=1;i--){//控制每行打印的項數(shù),for(inti=1;i<=9;i++),這樣就是打印正的}for(intj=1;j<=i;j++){Sytem.out.print(j+\+i+\+ij);Sytem.out.print(\);}Sytem.out.println(\);某/publicclajiujiu{publictaticvoidmain(String[]arg){inti=0;intj=0;for(i=1;i<=9;i++){for(j=1;j<=9;j++)Sytem.out.print(i+\+j+\+i某j+\);Sytem.out.println();}}}不出現(xiàn)重復(fù)的乘積(下三角)publicclajiujiu{publictaticvoidmain(String[]arg){{temp=myarr[11];for(intj=11;j>=k+1;j--)myarr[j]=myarr[j-1];myarr[k]=temp;}Sytem.out.println(\);for(intk=1;k<=11;k++)Sytem.out.print(myarr[k]+\);}}【程序31】題目:將一個數(shù)組逆序輸出。程序分析:用第一個與最后一個交換。其實,用循環(huán)控制變量更簡單:for(intk=11;k>=1;k--)Sytem.out.print(myarr[k]+\);32】題目:取一個整數(shù)a4~7)先使a4(241,0~(~0<<4)(3&運算。publicclaE某32{publictaticvoidmain(String[]arg){inta=0;longb=18745678;a=(int)Math.floor(b%Math.pow(10,7)/Math.pow(10,3));Sytem.out.println(a);}}33】題目:打印出楊輝三角形(10)1.11112113311464115101051publicclaE某33{publictaticvoidmain(Stringarg[]){inti,j;inta[][];a=newint[8][8];for(i=0;i<8;i++){a[i][i]=1;a[i][0]=1;}for(i=2;i<8;i++){for(j=1;j<=i-1;j++){a[i][j]=a[i-1][j-1]+a[i-1][j];}}for(i=0;i<8;i++){for(j=0;jSytem.out.printf(\+a[i][j]);}Sytem.out.println();}}}343a,b,c1.publicclaE34{publictaticvoidmain(String[]arg){int[]array={800,56,500};for(inti=array.length;--i>=0;){for(intj=0;jif(array[j]>array[j+1]){inttemp=array[j];array[j]=array[j+1];array[j+1]=temp;}}}for(intn=0;n35】題目:輸入數(shù)組,最大的與第一個元素交換,最小的與importjava.util.某;publicclaEpublictaticvoidmain(String[]arg){inti,min,ma某,n,temp1,temp2;inta[];Sytem.out.println(\輸入數(shù)組的長度:\);Scannerkeyboard=newScanner(Sytem.in);n=keyboard.ne某tInt();a=newint[n];for(i=0;i<n;i++){Sytem.out.print(\\+(i+1)+\\);a[i]=Int();}//以上是輸入整個數(shù)組ma=0;min=0;//設(shè)置兩個標志,開始都指向第一個數(shù)for(i=1;i<n;i++){if(a[i]>a[ma某])ma=i;//遍歷數(shù)組,如果大于a[ma某if(a[i]<a[min])min=i;//同上,如果小于a[min],就把他的數(shù)組下標賦給min}//以上for最小值的下標temp1=a[0];temp2=a[min];//這兩個temp只是為了在交換時使用a[0]=a[ma某];a[ma]=temp1;//首先交換a[0]和最大值a[maa[0],執(zhí)行下面a[min]=a[n-1];a[n-1]=temp2;//交換a[min]和a[n-1]}ele{//如果最小值是執(zhí)行下面a[ma]=a[n-1];a[n-1]=temp1;}for(i=0;i<n;i++){//輸出數(shù)組Sytem.out.print(a[i]+\);}}}36nm最后mm【程序37】題目:有n(從13),3importjava.util.Scanner;publicclaE37{publictaticvoidmain(String[]arg){Scanner=newScanner(Sytem.in);intn=.ne某tInt();boolean[]arr=newboolean[n];for(inti=0;iintleftCount=n;intcountNum=0;intindewhile(leftCount>1){if(arr[inde]==true){//當在圈里時countNum++;//報數(shù)遞加if(countNum==3){//3時countNum=0;//從零開始繼續(xù)報數(shù)arr[inde]=fale;//此人退出圈子leftCount--;//inde++;//每報一次數(shù),下標加一if(inde==n){//是循環(huán)數(shù)數(shù),當下標大于n圈,inde=0;//for(inti=0;i【程序38】題目:寫一個函數(shù),求一個字符串的長度,在mainimportjava.util.Scanner;publicclaE38{publictaticvoidmain(String[]arg){Scanner=newScanner(Sytem.in)

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論