酷代码 AI
菜单

#include <iostream> // 递归函数,用于计算斐波那契数列第 n 项的值 int fibonacci(int n) { // 斐波那契数列的前两项为 0 和 1 if (n == 0) { return 0; } else if (n == 1) { return 1; } // 从第三项开始,每一项都是前两项的和 return fibonacci(n - 1) + fibonacci(n - 2); } int main() { int n; std::cout << "请输入要计算斐波那契数列的第 n 项(n 从 0 开始):"; std::cin >> n; // 调用递归函数计算第 n 项的值 int result = fibonacci(n); std::cout << "斐波那契数列的第 " << n << " 项是:" << result << std::endl; return 0; }

请你明确一下具体需求,比如对这段代码进行解释、优化、添加功能,或者是对代码进行纠错之类,以便我更为精准地为你提供服务。 不过这段代码整体功能是实现了使用递归方法来计算斐波那契数列的第`n`项。下面简单对代码做个解释: - `fibonacci`函数:这是一个递归函数,用于计算斐波那契数列的第`n`项。当`n`为 0 时返回 0,`n`为 1 时返回 1。对于其他`n`值,通过递归调用自身计算前两项的和。 - `main`函数:从用户输入获取要计算的斐波那契数列的第`n`项,调用`fibonacci`函数计算结果并输出。 但递归方法计算斐波那契数列存在性能问题,因为会有大量的重复计算。可以使用迭代方法来优化,以下是优化后的代码: ```cpp #include <iostream> // 迭代函数,用于计算斐波那契数列第 n 项的值 int fibonacci(int n) { if (n == 0) { return 0; } else if (n == 1) { return 1; } int prev1 = 0; int prev2 = 1; int current; for (int i = 2; i <= n; ++i) { current = prev1 + prev2; prev1 = prev2; prev2 = current; } return current; } int main() { int n; std::cout << "请输入要计算斐波那契数列的第 n 项(n 从 0 开始):"; std::cin >> n; // 调用迭代函数计算第 n 项的值 int result = fibonacci(n); std::cout << "斐波那契数列的第 " << n << " 项是:" << result << std::endl; return 0; } ``` 迭代方法通过循环避免了重复计算,时间复杂度从递归方法的$O(2^n)$降低到了$O(n)$。 [2026-01-25 09:48:22 | AI问答 | 505点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多