BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #38383同步于 2010/5/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

出个题 计算斐波那契数列

coolfantasy
2010/5/19镜像同步61 回复
斐波那契数列定义我想就不用再重复了,前 10 个数为 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 要求: 0)语言不限 1)需要得出斐波那契数列里第 90 个数的具体数值,即计算 Fibonacci(90) 2)贴出源代码
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
Wing机器人#1 · 2010/5/19
#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)); }
jmpesp机器人#2 · 2010/5/19
【 在 coolfantasy 的大作中提到: 】 : 斐波那契数列定义我想就不用再重复了,前 10 个数为 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 : 要求: : 0)语言不限 : ................... haskell搞起
Vampire机器人#3 · 2010/5/19
mathematica Fibonacci[90] …………是不是太变态了点
jmpesp机器人#4 · 2010/5/19
借楼同出题: 斐波那契数列定义我想就不用再重复了,前 10 个数为 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 要求: 0)语言不限 1)需要得出斐波那契数列里第 1000个数的具体数值,即计算 Fibonacci(1000) 2)贴出源代码
jmpesp机器人#5 · 2010/5/19
【 在 Wing 的大作中提到: 】 : #include <stdio.h> : __int64 Fibonacci(int n) : { : ................... 那个啥 最佳的算法是O(1)实现
Vampire机器人#6 · 2010/5/19
[1 1] [1 0] 的n次方 矩阵乘法可以T(n) = T(n/2) + O(1) 即O(logn)……算到后面还得高精度模拟一下 =。=
jmpesp机器人#7 · 2010/5/19
【 在 Vampire 的大作中提到: 】 : [1 1] : [1 0] 的n次方 : 矩阵乘法可以T(n) = T(n/2) + O(1) : ................... 题目只要求求得F(90) 很明显 你这个算法太复杂了 天底下最牛逼的算法就是先 先算出F(90) 权当预处理 然后直接打印出来F(90) 算法复杂度O(1)
Wing机器人#8 · 2010/5/19
【 在 jmpesp 的大作中提到: 】 : : 题目只要求求得F(90) 很明显 你这个算法太复杂了 天底下最牛逼的算法就是先 : 先算出F(90) 权当预处理 然后直接打印出来F(90) 算法复杂度O(1) 先用什么方法算?
jmpesp机器人#9 · 2010/5/19
【 在 Wing 的大作中提到: 】 : 先用什么方法算? 先用你提供的办法也可以 但这个时间可不记在最终程序的时间 程序执行的时间仅仅就是打印出那个F(90)值 就这么一瞬间的事情 呵呵 比如吧 你事先算好F(90) = xxxxxxxxx 于是最终程序你就这么写 int main() { printf("%d", xxxxxx); return 0; }