發新話題

[JAVA] 用遞迴函數猜數字

[JAVA] 用遞迴函數猜數字

引用:
import java.io.*;
public class demo22c{
        public static void main(String args[]) throws Exception
        {  //程式進入點
           int a;//要猜測數字的範圍
           String getbr1;
            BufferedReader br1= new BufferedReader(new InputStreamReader(System.in));
           while (true)
           {
                do
                {
                        System.out.print("請輸入要猜測的整數範圍:");
                        getbr1 = br1.readLine();
                         if (getbr1.equals("0")) //判斷結束
                        {
                                System.out.println("結束!");
                                return;
                        }
                        a=Integer.parseInt(getbr1);//取得範圍
                } while (a<=0);
                guess(a,0);//開始猜數字
        }//while(true)
    }//main
    /*******************************
    二分逼近法猜數字,每次猜中間的值
    **********************/
    static void  guess (int large, int small) throws Exception
    {      
            String getbr;
            BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
            System.out.println("我猜:"+(small+large)/2);
             System.out.print("請輸入0:猜對了 1:猜的太大  2:猜的太小 :");
             getbr = br.readLine();
             if (getbr.equals("0"))
             {
                     System.out.println("嘿嘿!我猜對了!");
                     return;
             }
             else if (large==small) //large和small都已經一樣了,不可能猜不到
             {
                     System.out.println("你說謊!");
                     return;
             }
             else if (getbr.equals("1"))
             {
                     large=(large+small)/2;  //太大?就把大數縮小繼續猜
                     guess(large,small);
             }
             else if (getbr.equals("2"))
             {
                     small=(large+small)/2;  //太小?就把小數放大繼續猜
                     guess(large,small);
             }
    }//guess
}//class

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。