作者dharma (達)
看板java
標題[問題] 函數一個程式碼使用不同參數情形
時間Sun Jun 8 20:47:09 2014
下面class是被呼叫來判斷是不是質數
是質數就傳回true
有時int會不夠用
會用到long
翻書看起來好像要將int和long各寫一個函式
兩者長的幾乎一樣
請問Java有辦法只寫一個函式
卻可同時被int和long的參數呼叫嗎?
thank
//下面是參數int
public class IsPrime {
boolean isPrime(int num) {
boolean flag = true;
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
flag = false;
break;
}
}
return flag;
}
}
//下面是參數long,和上面的差別就是小括號裡而已
public class IsPrime {
boolean isPrime(long num) {
boolean flag = true;
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
flag = false;
break;
}
}
return flag;
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.106.192
※ 文章網址: http://www.ptt.cc/bbs/java/M.1402231631.A.43C.html
推 LPH66:關鍵字 Generic 不過 primitive type 似乎又有點不同 06/08 20:52
感謝,研究ing
推 Killercat:全long有什麼問題嗎....? 06/08 22:00
有時用到int,有時用到long
推 banjmin:如果你是真的覺得不夠用 有個algo常用在加密演算法上 06/08 22:18
→ banjmin:Miller-Rabin 有用java BigInteger實作 你可以用 06/08 22:20
→ banjmin:不過他是機率式的檢查是否是質數 測試次數要多 提高機率 06/08 22:23
※ 編輯: dharma (118.163.106.192), 06/08/2014 22:57:37
→ eieio:只寫一個 long 的就行了,input 是 int 時會自動被轉成 long 06/09 01:29
推 pupuliao:我也在想,把所有int強制轉成long 不行嗎? 06/09 03:27
→ NewSpec:一個就夠了 06/09 04:56