java學習總結——第五天

學習java第五天重點筆記:

 

1.a=100;    b=100;  c=200;

Java中按引用傳值,不是複製

 

2.方法:

方法有----名字,傳參,返回值

格式:【修飾符修飾符2 ...】返回值類型 方法名(形式參數列表){

Java語句;

}

 

3.集合(變長)參數

1) 每個方法參數列表中只能有一個變長參數。

2) 變長參數必須是該方法的最後一個參數。

Egstatic void method1 (int...i){

Java語句;

}

Static void method2 (float f, double d,int ...i){

Java語句;

}

示例代碼:

public class clong{

public static void main(String[] args){

method(1,2,3,4,2,3,4,2,3,1,4,5,7,5,2);

}

public static void method(int ...numbers){

for(int a:numbers)

System.out.print(a+" ");

System.out.println();

System.out.println(numbers.length);

}

}

 

4.遞歸:

遞歸必須要有遞歸出口。

Eg:利用遞歸計算1+2+。。。+100的和

public class  root

{

public static void main(String[] args) 

{

int s=add(100);

System.out.println(s);

}

public static int add(int n){

if(n==1)

return 1;

else return add(n-1)+n;

}

}

漢諾塔(hanoi)問題

public class hanoi{

public static void main(String[] s){

han(3,'A','B','C');

}

public static void han(int n,char x,char y,char z){

if(n==1)

System.out.println("\t"+x+"-->"+z);

else{

han(n-1,x,z,y);

System.out.println("\t"+x+"-->"+z);

han(n-1,y,x,z);

}

}

                                       

                                           han(1,A,B,C)------A-->C

                         han(2,A,C,B)

                             A---->B        han(1,C,A,B)-------C-->B

han3A, B, C

             A-->C

                       han(2,B,A,C)(同上)

 

 

 

5.方法重載:

方法名相同,方法所傳參數類型,參數個數不相同。

public class method 

{

public static void main(String[] args) 

{

method(15.3);

}

public static void method(int i){

System.out.println(" int "+i);

}

public static void method(float f){

System.out.println(" float "+f);

}

public static void method(double d){

System.out.println(" double "+d);

}

public static void method(double l){

System.out.println(" long "+l);

}

}

 課堂練習:

1:題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第四個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數爲多少?   

public class rabbit 

{

public static void main(String[] args) 

{

int i=0;

math mymath = new math();

for(i=1;i<=20;i++)

System.out.println(mymath.f(i));

}

 

}

class math

{

public int f(int x)

{

if(x==1 || x==2)

return 1;

else

return f(x-1)+f(x-2);

}

}

 

2:判斷101-200之間有多少個素數,並輸出所有素數

public class sushu 

{

public static void main(String[] args) 

{

for(int i=101;i<=200;i++)

if(true==issushu(i))

System.out.print(i+" ");

}

static boolean issushu(int i){

for (int j=2;j<i/2; j++)

{

if(i%j==0)

return false;

}

return true;

}

}

 

3. 題目:打印出所有的 "水仙花數 ",所謂 "水仙花數 "是指一個三位數,其各位數字立方和等於該數本身。例如:153是一個 "水仙花數 ",因爲153=1的三次方+5的三次方+3的三次方。   

1.程序分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位。

public class flower 

{

public static void main(String[] args) 

{

water();

}

public static void water(){

for(int i=100;i<=999;i++)

{

int g=i%10;

int s=i%100/10;

int b=i/100;

if(i==g*g*g+s*s*s+b*b*b)

System.out.println(i+" ");

}

}

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章