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

}

}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值