複習一下JAVA的基礎算法算法
1.題目:古典問題:有一對兔子,從出生後第3個月起每一個月都生一對兔子,小兔子長到第四個月後每一個月又生一對兔子,假如兔子都不死,問每一個月的兔子總數爲多少?ide
public class mainTest { /** * 題目:古典問題:有一對兔子,從出生後第3個月起每一個月都生一對兔子, * 小兔子長到第四個月後每一個月又生一對兔子,假如兔子都不死,問每一個月的兔子總數爲多少? * 規律:1.1.2.3.5.8.13 */ public static void main(String[] args) { System.out.println(f(3)); } public static int f(int i){ if(i==1||i==2){ return 1; }else{ return f(i-1)+f(i-2); } } }
2.題目:判斷101-200之間有多少個素數,並輸出全部素數。結果爲101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199學習
public class mainTest { /** * 思路:素數是隻能被自身跟1整除的數。循環i從101-200.與比i小的數(又一個循環j,從2到i)求餘, * 若是i%j==0而且i!=j說明i能夠被其餘數整除,則跳出循環, * 若是i不能夠被j的任何數整除, * 只有當i==j的時候才能夠整除(就是被自身整除)就爲素數 */ public static void main(String[] args) { for (int i = 101; i < 201; i++) { int flag = 0; for (int j = 2; j <= i; j++) { if (i % j == 0 && i != j) { break; } else if (i == j) { flag = 1; } } if (flag == 1) { System.out.print(i+","); } } } }
3.題目:打印出1000之內全部的 "水仙花數 ",所謂 "水仙花數 "是指一個三位數,其各位數字立方和等於該數自己。例如:153是一個 "水仙花數 ",由於153=1的三次方+5的三次方+3的三次方。結果:153,370,371,407spa
public class mainTest { /** * 主要分別取得個位數就行了。 * @param args */ public static void main(String[] args) { for (int i = 100; i < 1000; i++) { math(i); } } public static void math(int i){ int i3=i%10;//個位數 int i2=(i%100)/10;//十位數 int i1=i/100;//百位數 if(i==(i1*i1*i1)+(i2*i2*i2)+(i3*i3*i3)){ System.out.println(i); } } }
4.題目:利用條件運算符的嵌套來完成此題:學習成績> =90分的同窗用A表示,60-89分之間的用B表示,60分如下的用C表示。 code
public class mainTest { /** * 學習成績> =90分的同窗用A表示,60-89分之間的用B表示,60分如下的用C表 */ public static void main(String[] args) { test(90); } public static void test(int i){ String s =""; s=(i<60)?"C":(i>=90?"A":"B"); System.out.println(s); } }
5.題目:一球從100米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在 第10次落地時,共通過多少米?第10次反彈多高? blog
public class mainTest { /** * 一球從100米高度自由落下,每次落地後反跳回原高度的一半; * 再落下,求它在 第10次落地時,共通過多少米?第10次反彈多高? */ public static void main(String[] args) { double s =0; double h =100; for (int i = 1; i < 11; i++) { s+=h; System.out.println(s); h=h/2; System.out.println(h); } System.out.println(s); } }
6.題目:有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少? class
public class mainTest { /** *題目:有一、二、三、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少? * */ public static void main(String[] args) { int t=0; for (int i = 1; i < 5; i++) { int s1=i; for (int j = 1; j < 5; j++) { int s2=j; for (int k = 1; k < 5; k++) { int s3=k; String s= String.valueOf(s1)+String.valueOf(s2)+String.valueOf(s3); if(s1!=s2&&s1!=s3&&s2!=s3){ t++; System.out.println(s); } } } } System.out.println(t); } }