1樓
大 中
小 發表於 2006-8-7 20:39
[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
|