斐波那契数列
1.使用递归 时间复杂度为O(n)
#include <iostream>
int F[105];//储存之前的数据
int fib(int n)
{
if(n<=2) return F[n]=1;
if( F[n] ) return F[n]; //使用记忆化搜索来降低实践复杂度
return F[ n ] = fib(n-1) + fib(n-2);
}
int main()
{
int n;
std::cin >> n;
std::cout << fib(n);
return 0;
}
2.使用循环 时间复杂度为O(n),使用轮换代替。
#include <iostream>
int main()
{
int a=1,b=1,c,n;
std::cin>>n;
for(int i=2;i<n;i++)
{
if(n<=2)
{
std::cout<<1;
return 0;
}
else
{
c=a+b;
a=b;
b=c;
}
}
std::cout<<c;
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述