Java 斐波那契数列的编程实现
斐波那契数列#
编程实现费式数列中第 n 项的数值并返回。
费式数列:1 1 2 3 5 8 13 21
分析规律#
- 第 1 项和第 2 项固定为 1。
- 从第 3 项起每一个数值是前两项的和。
递归实现#
递归实现会影响程序的执行性能 不推荐使用
public int recursion(int n) { // int n = 5; int n = 4; int n = 3; int n = 2; n = 1;
// 当 n == 1 或 n == 2 时返回 1
if (n == 1 || n == 2) {
return 1;
}
// 否则是前两者的和
return recursion(n - 1) + recursion(n - 2);
// 分析执行
// recursion(5) => return recursion(4)+ recursion(3); => 5
// recursion(4) => return recursion(3)+ recursion(2); => 3
// recursion(3) => return recursion(2)+ recursion(1); => 2
// recursion(2) => return 1; => 1
// recursion(1) => return 1; => 1
}
public static void main(String[] args) {
MathSeries series = new MathSeries();
int num = series.seriesRecursion(40);
System.out.println(num);
}
递推实现#
public int seriesFor(int n) {
// 当 n == 1 或 n == 2 时返回 1
if (n == 1 || n == 2) {
return 1;
}
int ia = 1; // 前 2 项
int ib = 1; // 前 1 项
// 从第 3 项开始计算
for (int i = 3; i <= n; i++) {
int result = ia + ib; // 前两者的和
ia = ib; // 将前第 1 项移至 2 项
ib = result; // 将第一项设为前两项的和
}
return ib;
}
public static void main(String[] args) {
MathSeries series = new MathSeries();
int num = series.seriesFor(10);
System.out.println(num);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)