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+"不是回文!"); } }
結果: