Re: [承上面]67個if的美學果然不適合小弟...

看板java作者 (旅人的足跡)時間13年前 (2012/10/17 07:11), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串4/8 (看更多)
※ 引述《JazzChen (PhoenixJazz)》之銘言: : //random number : int[] D = new int[4]; : D[0] = (int) (Math.random()*10); : do{ : D[1]=(int) (Math.random()*10); : } while(D[0] == D[1]); : do{ : D[2]=(int) (Math.random()*10); : } while(D[0] == D[2] || D[1] == D[2]); : do{ : D[3]=(int) (Math.random()*10); : } while(D[0] == D[3] || D[1] == D[3] || D[2] == D[3]); 想像有一個裝著十個號碼牌的籃子 每次從籃子中抽出一張號碼牌不放回 抽四次就可以得到四個不重複的數字 : //判斷A & B : int[] R = new int[4]; : int a = 0; : int b = 0; : int g = sc.nextInt();//假設前面已宣告過sc了 : for(int i=3; i>=0; i--) { : R[i] = g%10; : g = g/10; : } //把輸入的值設為陣列 : for(int i=0; i<4; i++) //判斷A : if (D[i] == R[i]) a++; : for(int i=0; i<4; i++) //判斷B : for(int j=0; j<4; j++) : if (i!=j && D[i] == R[j]) b++; 建議判斷A、B用字元陣列陣列比較理想 例如答案是 0123 ,這樣的答案會不存在 況且沒有處理使用者輸入相同數字的情況 例如輸入 1111 ,如果有 1 ,就會得到 1A3B : //輸出輸入便不寫了,偷懶一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.143.192

10/17 15:07, , 1F
一般來說猜數字好像不會用同樣的數字,不過在判斷輸入上
10/17 15:07, 1F

10/17 15:15, , 2F
或許可以更嚴謹一些,謝謝指教
10/17 15:15, 2F
文章代碼(AID): #1GVUcVei (java)
討論串 (同標題文章)
文章代碼(AID): #1GVUcVei (java)