Fibonacci数列问题求输出第n个数

努力学习的阿信 2019-05-05 05:31:52
#include <bits/stdc++.h> using namespace std; int fib(int n){ if(n==1) return 1; if(n==2) return 1; return fib(n-1)+fib(n-2); } int main() { int n; cin>>n; cout<<fib(n)<<endl; return 0; } 代码输出时间太长,应该怎么改进?
...全文
266 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

unsigned long long ffib(int n)
{
if(n < 1) return 0;
if(n < 3) return 1;
if (n & 1) return --n /= 2, ffib(n + 1) * ffib(n + 1) + ffib(n) * ffib(n);
return n /= 2, ffib(n) * (ffib(n + 1) * 2 - ffib(n));
}


可以秒算到n=93,再大结果就溢出了

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧