1、求平方數的靜態類方法Square.java,不用static但仍想在main中調用的處理方法。

//類的對象實例化
//王榮榮 2016/10/16
public class SquareIntTest {
public static void main(String[] args) {
for (int x=1; x <= 10; x++) {
SquareIntTest obj; //創建類的示例obj
obj=new SquareIntTest();
int result = obj.square(x);
// Math庫中也提供了求平方數的方法
// result=(int)Math.pow(x,2);
System.out.println("The square of " + x + " is " + result + "\n");
}
}
// 自定義求平方數的靜態方法
public int square(int y) {
return y * y;
}
}
結果:

2.編寫一個方法,使用以下算法生成指定數目(比如1000個)的隨機整數。
//王榮榮 2016/10/15
import java.util.Random;
public class Random1000 {
public static void main(String[] args)
{
Random r1 = new Random(1000);
System.out.println("第一個種子為1000的Random對象");
System.out.println("r1.nextBoolean():\t" + r1.nextBoolean());
System.out.println("r1.nextInt():\t\t" + r1.nextInt());
System.out.println("r1.nextDouble():\t" + r1.nextDouble());
System.out.println("r1.nextGaussian():\t" + r1.nextGaussian());
System.out.println("---------------------------");
}
}
結果:

3.請看以下代碼,你發現了有什麼特殊之處嗎?

結果:

上述示例代碼展示了Java的“方法重載(overload)”特性。計算7^2時,調用的是整型
public static int square(int x) {
return x * x;
}
而計算7.5^2時,調用的是雙精度類型
public static double square(double y) {
return y * y;
}
滿足以下條件的兩個或多個方法構成“重載”關系:
(1)方法名相同;
(2)參數類型不同,參數個數不同,或者是參數類型的順序不同。
以上重載是參數類型不同。
注意:方法的返回值不作為方法重載的判斷條件。
4.查看一下JDK中System.out.println()方法,你發現了什麼?

System.out.println()方法中實參表內可輸入很多類型。
5.CalculateN示例程序中的BUG,50!出現負數。

原因:由於計算機使用固定的位數來保存數值,因此,能處理的數值大小是有限的,當要處理的數值超過了這一范圍時,計算機將會自動截斷數值的二進制表示為它所能處理的最多位數,這將導致錯誤的處理結果。
6.使用計算機計算組合數:
(1)使用組合數公式利用n!來計算

源代碼:
import java.math.BigInteger;
import java.util.Scanner;
public class Zhuheshu {
public static void main(String[] args) {
System.out.print("請輸入N:");
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
System.out.print("請輸入M:");
Scanner scanner1=new Scanner(System.in);
int k=scanner1.nextInt();
System.out.println(ca(n).divide(ca(k).multiply(ca(n-k))));
}
public static BigInteger ca(int m) {
if(m==1 || m==0){
return BigInteger.valueOf(1);
}
return BigInteger.valueOf(m).multiply(ca((m-1)));
}
}
結果:

7.遞歸編程解決漢諾塔問題。用Java實現

源程序:
//用遞歸方式編程解決漢諾塔問題
//王榮榮 2016/10/16
import java.util.Scanner;
public class Hannuota {
public static void main(String[] args){
System.out.print("請輸入盤子的個數:");
Scanner scanner=new Scanner(System.in);
int disks=scanner.nextInt();//盤子的個數
final int source=1;//盤子的初始位置第一根柱子上
final int desk=3;//盤子的最終位置第三根柱子上
final int spare=2;//臨時存放盤子的位置第二根柱子上
move(disks,source,desk,spare);
}
public static void move(int disks,int source,int desk,int spare){
if(disks==1)
System.out.println(source+"->"+desk);
else{
move(disks-1,source,spare,desk);
System.out.println(source+"->"+desk);
move(disks-1,spare,desk,source);
}
}
}
結果:

8.使用遞歸方式判斷某個字串是否是回文( palindrome )
//王榮榮2016/10/15
import java.util.Scanner;
public class Huiwen {
public static void main(String[] args){
String str="";
System.out.println("請輸入一個字符串:");
Scanner in=new Scanner(System.in);
str=in.nextLine();
StringBuffer sb=new StringBuffer(str);
sb.reverse();
int n=0;
for(int i=0;i<str.length();i++){
if(str.charAt(i)==sb.charAt(i))
n++;
}
if(n==str.length())
System.out.println(str+"是回文!");
else System.out.println(str+"不是回文!");
}
}
結果:
