[问题] 函数一个程式码使用不同参数情形

楼主: 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