深入理解递归:从斐波那契数列到分形图形
1. 递归基础与斐波那契数列
递归是编程中一种强大的技术,它允许函数调用自身来解决问题。在本章的练习中,我们可以增强斐波那契数列程序,使其能够计算执行该计算所需的大致时间。为此,我们可以调用静态的 System 方法 currentTimeMillis ,该方法不接受任何参数,并返回自 1970 年 1 月 1 日以来计算机的当前时间(以毫秒为单位)。
// 示例代码,计算斐波那契数列并记录时间
long startTime = System.currentTimeMillis();
// 调用斐波那契函数计算结果
long result = fibonacci(10);
long endTime = System.currentTimeMillis();
long timeElapsed = endTime - startTime;
System.out.println("计算结果: " + result);
System.out.println("计算耗时: " + timeElapsed + " 毫秒");
同时,如果对 Lambda 表达式和流有一定了解,也可以使用它们来计算斐波那契数列,而不是使用递归。
2. 递归与方法调用栈
为了更好地理解递归,我们需要了解方法调用栈的工作原理。以斐波那契数列为例,当调用 fibonacci(3) 时,方法调用栈的变化如下:
- 第一次调用(A) fibonacci
超级会员免费看
订阅专栏 解锁全文
1885

被折叠的 条评论
为什么被折叠?



