看板 java 關於我們 聯絡資訊
求離70最近的偶數: 下面的程式碼是檢查70以下的部分 用i減去的方式去解 i到1000以後跳出 我寫的方法是 class Test02{ int[] array = {0,18,57,75,81}; int diff = integer.MAX_VALUE; int[] ans = new int[2]; //回答用的數列 ----------------------------------------------- for(int i = 0;i<diff;i++){ for(int j = 0;j<array.length;j++){ if(70-i==array[j]&&(70-i)%2==0){ ans[0]=array[j]; } } if(i>1000) //用i值檢查到1000 break; } System.out.println("離70以下離最近的是"+ans[0]); 可是這樣寫有一個徵結點就是... 當數列裡面沒有0時這個程式碼沒有問題 但是遇到數列有0和70以下另一個偶數時會列印出離70最近是0 我已經改了一整天沒辦法改出來 感覺好像鬼打牆 越寫越多~ 版上高手能幫忙回答~謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 110.3.192.28
johnhao1206:我不太了解你用i減去的方法,題目總共三個限制:70以下 07/08 19:43
johnhao1206:偶數、離70最近,應該設幾個判斷式就可以解了 07/08 19:44
因為題目一開始是出到虛線之前給你提示 所以一定要用到Integer.MAX_VALUE去解的話 我只有想到用減的方式去寫而已 ※ 編輯: tonyshan 來自: 110.3.192.28 (07/08 21:15)
johnhao1206:你好像誤會題目給Integer.MAX_VALUE的意思了 你再想想 07/08 22:51
byend:這是考題....? J大說的對. 重點在 diff. 題目要你查兩個數字 07/09 16:33
byend:我看不懂一開始給的陣列.array意思在哪..? 這是腦筋急轉彎? 07/09 16:37
risker760915:題目是:從一數列(array)裡找出小於integer.MAX_VALUE 07/09 17:04
risker760915:且最接近integer.MAX_VALUE的偶數...是這樣嗎?? 07/09 17:05
superlubu:我覺得你應該是解錯題目了吧... 07/09 18:59
沒錯這是考題~題目是求最近70的偶數 如果沒有印出"找不到、全部為奇數" Integer.MAX_VALUE不是2147483647意思不是近無窮大的值、我想的方法就是一個用i 加的求大於70的數、另一個用減的方式求小於70的數、之後求完兩個數丟進ans數列 重點在於後面的判斷式要用0來判斷有沒有抓到數字、且預設為"0"的關係 所以在數列有"0"的時候很麻煩、看有沒有寫法可以在ans[0]被指定的時候 break跳出 ※ 編輯: tonyshan 來自: 110.3.192.28 (07/10 05:02) ※ 編輯: tonyshan 來自: 110.3.192.28 (07/10 06:02) ※ 編輯: tonyshan 來自: 110.3.192.28 (07/10 06:15)
johnhao1206:通常數線上的距離,我們會用絕對值去比較 07/10 09:21
johnhao1206:另外你不用掃過所有整數,只要掃你陣列的大小就好了 07/10 09:23
johnhao1206:這就像變形的取最小值而已,沒這麼難 多看看範例 07/10 09:26