java你们发现了_java-03方法课堂练习

1.java中利用static(静态),将方法放入类中。如果不加static,必须先实例化出来一个类,之后再通过实例化类名+方法的形式调用。

2.编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数。

3.请看以下代码,你发现了有什么特殊之处吗?

//MethodOverload.java//Using overloaded methods

public classMethodOverload {public static voidmain(String[] args) {

System.out.println("The square of integer 7 is " + square(7));

System.out.println("\nThe square of double 7.5 is " + square(7.5));

}public static int square(intx) {return x *x;

}public static double square(doubley) {return y *y;

}

}

结果:

fb436809b89e4c667a0cdf7dc8f3f30d.png

分析:这段代码体现了java中的方法重载,方法名相同但参数类型不同。在输入int类型时自动调用int类型的方法,在输入double类型时自动调用double类型的方法。

4.练习:查看一下JDK中System.out.println()方法,你发现了什么?

System是jdk自带的一个类,有很多的静态方法,也就是static的,有一个类变量out是PrintStream类型的,PrintStream有print和println方法。

5.使用计算机计算组合数

importjava.util.Scanner;public classZuheShu {public static voidmain(String[]args){

System.out.println("请输入组合数的n和k:");

Scanner in1=newScanner(System.in);int n=in1.nextInt();

Scanner in2=newScanner(System.in);int k=in2.nextInt();int result=jiechen(n)/(jiechen(k)*jiechen(n-k));

System.out.println("结果为:"+result);

in1.close();

in2.close();

}public static int jiechen(intn)

{int jieguo=1;if(n<0)

{

System.out.println("error!");

}else if(n==0||n==1)

{

jieguo=1;

}else{

jieguo=jiechen(n-1)*n;

}returnjieguo;

}

}

结果:

0e58e8575a8ce4f3a2d345bf1dbd7135.png

(2)使用递推的方法用杨辉三角形计算

importjava.util.Scanner;public classYangHui {public static voidmain(String[]args){

System.out.println("请输入组合数的n和k:");

Scanner in1=newScanner(System.in);int n=in1.nextInt();

Scanner in2=newScanner(System.in);int k=in2.nextInt();

System.out.println("结果为:"+result(n,k));

in1.close();

in2.close();

}public static int result(int n,intm)

{if(m==0||n==m)return 1;int s=Math.min(m, n-m);int f=1,f1=0;for(int i=1;i<=s;i++)

{

f1=f*(n-i+1)/(i);

f=f1;

}returnf1;

}

}

结果:

84e31602c0a499f009b331e7d2778765.png

(3)使用递归的方法用组合数递推公式计算

importjava.util.Scanner;public classDiGui {public static voidmain(String[]args){

System.out.println("请输入组合数的n和k:");

Scanner in1=newScanner(System.in);int n=in1.nextInt();

Scanner in2=newScanner(System.in);int k=in2.nextInt();

System.out.println("组合数结果为:"+result(n,k));

in1.close();

in2.close();

}public static int result(int m,intn)

{if(m<0||n<0||m

}

}

结果:

bc7e8635d64e303d99961686e62ad7b3.png

6.汉诺塔

public classTowerOFHanoi

{public static void solveTowers( int disks, intsourcePeg,int destinationPeg, inttempPeg )

{if ( disks == 1)

{

System.out.printf("\n%d --> %d", sourcePeg, destinationPeg );return;

}

solveTowers( disks- 1, sourcePeg, tempPeg, destinationPeg );

System.out.printf("\n%d --> %d", sourcePeg, destinationPeg );

solveTowers( disks- 1, tempPeg, destinationPeg, sourcePeg );

}public static voidmain( String[] args )

{int startPeg = 1;int endPeg = 3;int tempPeg = 2;int totalDisks = 3;

solveTowers( totalDisks, startPeg, endPeg, tempPeg );

}

}

结果:

0cbac6899d1528d1d7eb0f02e1c35aee.png

7.回文数

import java.util.*;public classHuiWen {public static voidmain(String[]args){

String str="";

System.out.println("请输入一个字符串:");

Scanner in=newScanner(System.in);

str=in.nextLine();

StringBuffer hw=newStringBuffer(str);

hw.reverse();int n=0;for(int i=0;i

n++;

}if(n==str.length())

System.out.println(str+"是回文字符串");elseSystem.out.println(str+"不是回文字符串");

}

}

结果:

80d0bb2a52d28422746ab7a682e50bb9.png

0978e9e6c20b4b8411de9373be6994a3.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值