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;
}
}
结果:
分析:这段代码体现了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;
}
}
结果:
(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;
}
}
结果:
(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
}
}
结果:
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 );
}
}
结果:
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+"不是回文字符串");
}
}
结果: