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

{

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+" ");

}

}

}

 

你可能感兴趣的:(汉诺塔,变长参数,方法重载,水仙花数,素数)