通过斐波那契数列来比较迭代和递归的区别
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通过斐波那契数列来比较递归和迭代的区别
介绍:斐波那契数列a(0) = a(1) = 1,a(n) = a(n-1) + a(n-2),下面是Java实现同一个fibonacci 数列,分别用递归和迭代方法来比较理解下。
Java代码:
public class Comparison {
//递归,调用自己本身。
static int fib_recursion(int n){
if(n == 1 | n == 0) return 1;
else return fib_recursion(n - 1) + fib_recursion(n - 2);
}
//迭代,用旧值算新值。
static int fib_iteration(int n){
int head = 1,tail = 1,next = 0;
if(n == 1 | n == 0) return 1;
for(int i=2;i<=n;i++){
next = head + tail;
head = tail;
tail = next;
}
return next;
}
public static void main(String[] args) {
int n = 4;
System.out.print("采用递归方法 ");
System.out.println(fib_recursion(n));
System.out.println();
System.out.print("采用迭代方法 ");
System.out.println(fib_iteration(n));
}
}
输出结果: