[問題] 函數一個程式碼使用不同參數情形

作者: dharma (達)   2014-06-08 20:47:09
下面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;
}
}
作者: LPH66 (-6.2598534e+18f)   2014-06-08 20:52:00
關鍵字 Generic 不過 primitive type 似乎又有點不同
作者: Killercat (殺人貓™)   2014-06-08 22:00:00
全long有什麼問題嗎....?
作者: banjmin (HD)   2014-06-08 22:18:00
如果你是真的覺得不夠用 有個algo常用在加密演算法上Miller-Rabin 有用java BigInteger實作 你可以用不過他是機率式的檢查是否是質數 測試次數要多 提高機率
作者: eieio (好多目標)   2014-06-09 01:29:00
只寫一個 long 的就行了,input 是 int 時會自動被轉成 long
作者: pupuliao (pupu)   2014-06-09 03:27:00
我也在想,把所有int強制轉成long 不行嗎?
作者: NewSpec (新規格)   2014-06-09 04:56:00
一個就夠了

Links booklink

Contact Us: admin [ a t ] ucptt.com