Blu*_*ire 5 java iteration recursion
我正在通过项目Euler,我遇到了一个组合问题.组合逻辑意味着计算阶乘.所以,我决定创建一个阶乘方法.然后我遇到了一个问题 - 因为我可以很容易地使用迭代和递归来做到这一点,我应该去哪一个?我快速写了2个方法 - 迭代:
public static long factorial(int num) {
long result = 1;
if(num == 0) {
return 1;
}
else {
for(int i = 2; i <= num; i++) {
result *= i;
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
和递归:
public static long factorial(int num) {
if(num == 0) {
return 1;
}
else {
return num * factorial(num - 1);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我(显然)在这里谈论速度和功能,我应该使用哪一个?而且,一般来说,这种技术通常比其他技术更好(所以如果我以后遇到这个选择,我该怎么做)?
| 归档时间: |
|
| 查看次数: |
19340 次 |
| 最近记录: |