程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 動手動腦4,動手動腦

動手動腦4,動手動腦

編輯:JAVA綜合教程

動手動腦4,動手動腦


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

結果:

      

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved