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

看板java作者 (達)時間10年前 (2014/06/08 20:47), 10年前編輯推噓4(404)
留言8則, 6人參與, 最新討論串1/2 (看更多)
下面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

06/08 20:52, , 1F
關鍵字 Generic 不過 primitive type 似乎又有點不同
06/08 20:52, 1F
感謝,研究ing

06/08 22:00, , 2F
全long有什麼問題嗎....?
06/08 22:00, 2F
有時用到int,有時用到long

06/08 22:18, , 3F
如果你是真的覺得不夠用 有個algo常用在加密演算法上
06/08 22:18, 3F

06/08 22:20, , 4F
Miller-Rabin 有用java BigInteger實作 你可以用
06/08 22:20, 4F

06/08 22:23, , 5F
不過他是機率式的檢查是否是質數 測試次數要多 提高機率
06/08 22:23, 5F
※ 編輯: dharma (118.163.106.192), 06/08/2014 22:57:37

06/09 01:29, , 6F
只寫一個 long 的就行了,input 是 int 時會自動被轉成 long
06/09 01:29, 6F

06/09 03:27, , 7F
我也在想,把所有int強制轉成long 不行嗎?
06/09 03:27, 7F

06/09 04:56, , 8F
一個就夠了
06/09 04:56, 8F
文章代碼(AID): #1Jb5jFGy (java)
文章代碼(AID): #1Jb5jFGy (java)