BestCoder10 1001 Revenge of Fibonacci(hdu 5018) 解题报告
2014-09-19 22:20
507 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5018
![](http://images.cnitblog.com/blog/520218/201409/192302440343225.jpg)
![](http://images.cnitblog.com/blog/520218/201409/192303071128007.jpg)
题目意思:给出在 new Fibonacci 中最先的两个数 A 和 B(也就是f[1] = A, f[2] = B),通过这条式子f
= f[n-1] + f[n-2],问 C 是否在这条 new Fibonacci sequence 内。(1 <= A, B, C <= 1 000 000 000)
首先,要想到 C 有可能是 A 或者 B,这种情况也是属于在这个序列范围内的。
还有一个地方,不要固定死数组的长度,因为不确定到底需要多大的空间存下来,而且,确实比较浪费空间,当前需要求出一个新的数,其实就是需要前面的两个数而已,再前面的根本就没什么用。
于是我这里就用到滚动数组的思想,只开了长度为 4 的数组,不断迭代来判断在 1000 000 000 的范围内,能否得到 C 这个数。
![](http://images.cnitblog.com/blog/520218/201409/192302440343225.jpg)
![](http://images.cnitblog.com/blog/520218/201409/192303071128007.jpg)
题目意思:给出在 new Fibonacci 中最先的两个数 A 和 B(也就是f[1] = A, f[2] = B),通过这条式子f
= f[n-1] + f[n-2],问 C 是否在这条 new Fibonacci sequence 内。(1 <= A, B, C <= 1 000 000 000)
首先,要想到 C 有可能是 A 或者 B,这种情况也是属于在这个序列范围内的。
还有一个地方,不要固定死数组的长度,因为不确定到底需要多大的空间存下来,而且,确实比较浪费空间,当前需要求出一个新的数,其实就是需要前面的两个数而已,再前面的根本就没什么用。
于是我这里就用到滚动数组的思想,只开了长度为 4 的数组,不断迭代来判断在 1000 000 000 的范围内,能否得到 C 这个数。
#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> using namespace std; const int INF = 1e9; __int64 A, B, C; __int64 f[4]; int main() { int T, i; while (scanf("%d", &T) != EOF) { while (T--) { scanf("%I64d%I64d%I64d", &A, &B, &C); f[0] = 0; f[1] = A; f[2] = B; if (C == A || C == B) printf("Yes\n"); else { bool flag = 0; for (i = 3; ; i++) { f[0] = f[1]; f[1] = f[2]; f[2] = f[0] + f[1]; if (f[2] == C) { flag = 1; break; } if (f[2] >= INF) break; } printf("%s\n", flag ? "Yes" : "No"); } } } return 0; }
相关文章推荐
- hdu 5018 Revenge of Fibonacci(BestCoder Round #10)
- 【BestCoder】 HDOJ 5018 Revenge of Fibonacci
- BestCoder5 1001 Poor Hanamichi(hdu 4956) 解题报告
- HDU 5018 Revenge of Fibonacci(数学)
- hdu 5018 Revenge of Fibonacci
- BestCoder3 1001 Task schedule(hdu 4907) 解题报告
- HDU-#5018 Revenge of Fibonacci(模拟)
- HDU 5018 Revenge of Fibonacci
- BestCoder10 1002 Revenge of GCD(hdu 5019) 解题报告
- hdu 5018 Revenge of Fibonacci
- HDU 5018 Revenge of Fibonacci
- hdu 5018 Revenge of Fibonacci(水题)
- BestCoder19 1001.Alexandra and Prime Numbers(hdu 5108) 解题报告
- 【CUGBACM15级BC第10场 A】hdu 5018 Revenge of Fibonacci
- hdu 5018 Revenge of Fibonacci(模拟)
- BestCoder17 1001.Chessboard(hdu 5100) 解题报告
- HDU 4727 The Number Off of FFF 解题报告
- BestCoder7 1001 Little Pony and Permutation(hdu 4985) 解题报告
- hdu 4099 Revenge of Fibonacci
- HDU 4099 Revenge of Fibonacci