返回信息流斐波那契数列定义我想就不用再重复了,前 10 个数为 1, 2, 3, 5, 8, 13, 21, 34, 55, 89
要求:
0)语言不限
1)需要得出斐波那契数列里第 90 个数的具体数值,即计算 Fibonacci(90)
2)贴出源代码
这是一条镜像帖。来源:北邮人论坛 / soft-design / #38383同步于 2010/5/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
出个题 计算斐波那契数列
coolfantasy
2010/5/19镜像同步61 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
#include <stdio.h>
__int64 Fibonacci(int n)
{
if (n < 4)
return n;
__int64 a = 2, b = 3, res = 0;
for (int i=4; i<=n; i++)
{
res = a + b;
a = b;
b = res;
}
return res;
}
void main()
{
printf("%I64d\n", Fibonacci(90));
}
【 在 coolfantasy 的大作中提到: 】
: 斐波那契数列定义我想就不用再重复了,前 10 个数为 1, 2, 3, 5, 8, 13, 21, 34, 55, 89
: 要求:
: 0)语言不限
: ...................
haskell搞起
借楼同出题:
斐波那契数列定义我想就不用再重复了,前 10 个数为 1, 2, 3, 5, 8, 13, 21, 34, 55, 89
要求:
0)语言不限
1)需要得出斐波那契数列里第 1000个数的具体数值,即计算 Fibonacci(1000)
2)贴出源代码
【 在 Wing 的大作中提到: 】
: #include <stdio.h>
: __int64 Fibonacci(int n)
: {
: ...................
那个啥 最佳的算法是O(1)实现
【 在 Vampire 的大作中提到: 】
: [1 1]
: [1 0] 的n次方
: 矩阵乘法可以T(n) = T(n/2) + O(1)
: ...................
题目只要求求得F(90) 很明显 你这个算法太复杂了 天底下最牛逼的算法就是先
先算出F(90) 权当预处理 然后直接打印出来F(90) 算法复杂度O(1)
【 在 jmpesp 的大作中提到: 】
:
: 题目只要求求得F(90) 很明显 你这个算法太复杂了 天底下最牛逼的算法就是先
: 先算出F(90) 权当预处理 然后直接打印出来F(90) 算法复杂度O(1)
先用什么方法算?
【 在 Wing 的大作中提到: 】
: 先用什么方法算?
先用你提供的办法也可以 但这个时间可不记在最终程序的时间 程序执行的时间仅仅就是打印出那个F(90)值 就这么一瞬间的事情 呵呵
比如吧 你事先算好F(90) = xxxxxxxxx
于是最终程序你就这么写
int main()
{
printf("%d", xxxxxx);
return 0;
}