[問題] 發散數列求最近值~
求離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
推
07/08 19:43, , 1F
07/08 19:43, 1F
→
07/08 19:44, , 2F
07/08 19:44, 2F
因為題目一開始是出到虛線之前給你提示
所以一定要用到Integer.MAX_VALUE去解的話
我只有想到用減的方式去寫而已
※ 編輯: tonyshan 來自: 110.3.192.28 (07/08 21:15)
推
07/08 22:51, , 3F
07/08 22:51, 3F
→
07/09 16:33, , 4F
07/09 16:33, 4F
→
07/09 16:37, , 5F
07/09 16:37, 5F
→
07/09 17:04, , 6F
07/09 17:04, 6F
→
07/09 17:05, , 7F
07/09 17:05, 7F
推
07/09 18:59, , 8F
07/09 18:59, 8F
沒錯這是考題~題目是求最近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)
→
07/10 09:21, , 9F
07/10 09:21, 9F
→
07/10 09:23, , 10F
07/10 09:23, 10F
→
07/10 09:26, , 11F
07/10 09:26, 11F
討論串 (同標題文章)