- 浏览: 37569 次
文章分类
- 全部博客 (41)
- 卧鸟个去 (2)
- Transform (2)
- Mathmatic (9)
- Plant-Tree (7)
- Data-Struct (12)
- Red-Black-Tree (1)
- Radix-Tree (1)
- Trie (2)
- String (4)
- BST (2)
- Amazing-Union-Find-Set (1)
- HDU (27)
- OJ (32)
- BFS (3)
- Pretty-Suffix-Array (2)
- POJ (6)
- Graceful-Segment-Tree (2)
- Geometry (6)
- Priority-Queue (2)
- Dynamic-Programing (1)
- DP (3)
- LCS (1)
- Convex-Hull (2)
- Triangulation (1)
- DFS (3)
- Combinatorial-Mathematics (2)
- Big-Number (1)
- Statistic (3)
- STL (1)
- Shortest-Path (3)
- ZOJ (1)
- Leftist-Tree (1)
- Prime (1)
- Binary-Index-Tree (1)
- (1)
- Stack (1)
- SPFA (0)
- CRT (1)
How Many Fibs?
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 1212 Accepted Submission(s): 501
Problem Description
Recall the definition of the Fibonacci numbers:
f1 := 1
f2 := 2
fn := fn-1 + fn-2 (n >= 3)
Given two numbers a and b, calculate how many Fibonacci numbers are in the range [a, b].
f1 := 1
f2 := 2
fn := fn-1 + fn-2 (n >= 3)
Given two numbers a and b, calculate how many Fibonacci numbers are in the range [a, b].
Input
The input contains several test cases. Each test case consists of two non-negative integer numbers a and b. Input is terminated by a = b = 0. Otherwise, a <= b <= 10^100. The numbers a and b are given with no superfluous leading zeros.
Output
For each test case output on a single line the number of Fibonacci numbers fi with a <= fi <= b.
Sample Input
10 100 1234567890 9876543210 0 0
Sample Output
5 4
Source
Recommend
Eddy
听到KID既大数题目题目推荐!我都用STL写左一个有加法重载既大数类。
不过令我WA多次既问题竟然系读错题目{= =b},f2 = 1,结果WA多次,真系…………
下面直接贴代码:
4281094 | 2011-07-28 20:00:08 | Accepted | 1316 | 156MS | 416K | 2614 B | C++ | 10SGetEternal{(。)(。)}! |
#include <iostream> #include <string> #include <vector> using namespace std; #define MAXI 486 class Bnum { public : vector<int> n; int l; Bnum(string str = "0") { int i; l = str.length(); n.resize(l); for (i = 0; i < l; i++) n[i] = str[l - i - 1] - 48; } Bnum & operator = (Bnum &o) { l = o.l; n = o.n; return o; } friend Bnum operator + (Bnum a, Bnum b) { Bnum c; int i, len = a.l > b.l? a.l: b.l; c.l = len + 1; c.n.resize(c.l); a.n.resize(c.l); b.n.resize(c.l); for (c.n[len] = i = 0; i < len; i++) { c.n[i] += a.n[i] + b.n[i]; c.n[i + 1] = c.n[i] / 10; c.n[i] %= 10; } if (!c.n[c.l - 1]) c.n.resize(--c.l); return c; } friend bool operator < (Bnum a, Bnum b) { int i; if (a.l == b.l) { for (i = a.l - 1; i >= 0; i--) if (a.n[i] < b.n[i]) return 1; else if (a.n[i] > b.n[i]) return 0; return 0; } else return a.l < b.l; } friend bool operator > (Bnum a, Bnum b) { int i; if (a.l == b.l) { for (i = a.l - 1; i >= 0; i--) if (a.n[i] > b.n[i]) return 1; else if (a.n[i] < b.n[i]) return 0; return 0; } else return a.l > b.l; } friend bool operator == (Bnum a, Bnum b) { int i; if (a.l == b.l) { for (i = a.l - 1; i >= 0; i--) if (a.n[i] != b.n[i]) return 0; return 1; } else return 0; } friend bool operator <= (Bnum a, Bnum b) { return a == b || a < b; } friend bool operator >= (Bnum a, Bnum b) { return a == b || a > b; } friend ostream & operator << (ostream & output, Bnum &o) { int i; for (i = 0; i < o.l; i++) output << o.n[o.l - i - 1]; return output; } friend istream & operator >> (istream & input, Bnum &o) { string buf; input >> buf; o = Bnum(buf); return input; } }fin[MAXI]; void init() { int i; fin[1] = Bnum("1"); fin[2] = Bnum("2"); for (i = 3;; i++) if (fin[i - 1].l >= 102) break; else fin[i] = fin[i - 1] + fin[i - 2]; } int main() { int i, sum; Bnum a, b; init(); while (cin >> a >> b) { if (a == Bnum("0") && b == Bnum("0")) break; for (sum = 0, i = 1; i < MAXI; i++) if (fin[i] > b) break; else if (a <= fin[i] && fin[i] <= b) sum++; cout << sum << endl; } return 0; }
下面贴上K神关于呢个题目既博文!!!
发表评论
-
HDU 1370 Biorhythms
2011-08-03 10:27 1192Biorhythms Time Limit: 2000/10 ... -
HDU 1075 What Are You Talking About
2011-08-04 11:00 866What Are You Talking About Tim ... -
HDU 1058 Humble Numbers
2011-08-02 15:55 1223Humble Numbers Time Limit: 200 ... -
HDU 2095 find your present (2)
2011-08-02 16:13 817find your present (2) Time Lim ... -
HDU 1022 Train Problem I
2011-08-02 21:00 1013Train Problem I Time Limit: 20 ... -
2142 HDU box
2011-08-02 21:21 763box Time Limit: 3000/1000 MS ( ... -
HDU 2151 Worm
2011-08-01 20:48 849Worm Time Limit: 1000/1000 MS ... -
HDU 2722 Here We Go(relians) Again
2011-08-02 00:06 1026Here We Go(relians) Again Time ... -
HDU 3791 二叉搜索树
2011-08-02 14:26 1208二叉搜索树 Time Limit: 20 ... -
PKU 2352 Stars
2011-07-31 21:47 1027Stars Time Limit: 1000MS ... -
PKU 2774 Long Long Message
2011-07-31 21:26 903Long Long Message Time Li ... -
PKU 2777 Count Color
2011-07-31 21:31 796Count Color Time Limit: 1 ... -
HDU 2098 分拆素数和
2011-07-31 21:08 1062分拆素数和 Time Limit: 1000/1000 MS ... -
ZOJ 3512 Financial Fraud .
2011-07-31 20:49 1284Financial Fraud Time Limit: 3 ... -
HDU 1798 Tell me the area .
2011-07-31 20:47 1124Tell me the area Time Limit: 3 ... -
HDU 2962 Trucking .
2011-07-31 20:46 684Trucking Time Limit: 20000/100 ... -
HDU 1596 find the safest road .
2011-07-31 20:45 605find the safest road Time Limi ... -
HDU 2553 N皇后问题 .
2011-07-31 20:20 703N皇后问题 Time Limit: 2000/1000 MS ... -
HDU 1392 Surround the Trees .
2011-07-31 20:19 796Surround the Trees Time Limit: ... -
HDU 1234 开门人和关门人 .
2011-07-31 20:17 675开门人和关门人 Time Limit: 2000/1000 ...
相关推荐
【标题】"hdu.rar_HDU 1089.cpp_OJ题求和_hdu_horsekw5_杭电obj" 提供的信息是关于一个压缩文件,其中包含了一个名为 "HDU 1089.cpp" 的源代码文件,这个文件是为了解决杭州电子科技大学(Hangzhou Dianzi ...
标题中的"hdu5102.zip_K."暗示这是一个与编程竞赛相关的题目,通常在HDU(杭州电子科技大学)在线判题系统中出现。这个题目可能是一个编程挑战,要求参赛者解决一个特定的问题,并提交源代码以供自动评判。"K."可能...
杭电操作系统实验 HDU操作系统实验.zip杭电操作系统实验 HDU操作系统实验.zip杭电操作系统实验 HDU操作系统实验.zip杭电操作系统实验 HDU操作系统实验.zip杭电操作系统实验 HDU操作系统实验.zip杭电操作系统实验 HDU...
解题报告|ACM|程序设计参考程序以及题目的分析
HDU操作系统实验.zip大学期间操作系统实验-HDU操作系统实验.zip大学期间操作系统实验-HDU操作系统实验.zip大学期间操作系统实验-HDU操作系统实验.zip大学期间操作系统实验-HDU操作系统实验.zip大学期间操作系统实验-...
【HDU-GO v19.1225.2.zip】是一个针对杭州电子科技大学(HDU)选课系统的浏览器插件,版本号为v19.1225.2。这个插件的主要功能是优化和提升学生在进行网络选课时的体验,它可能包含了增强界面、自动化操作、数据解析...
《杭电OnlineJudge 2000-2099解题报告》是针对杭州电子科技大学(HDU)在线评测系统(OnlineJudge)中2000至2099题目的详细解答集锦,主要涵盖了算法分析、编程技巧以及问题解决策略等内容。这份解题报告以CHM...
【标题】"HDU-2000-2099.zip_hdu2000" 是一个包含杭电(Hangzhou Dianzi University)ACM竞赛题目解题报告的压缩包,覆盖了编号从2000到2099的题目。这个资源对于学习算法、提高编程技巧以及准备ACM/ICPC(国际大学...
【标题】"hdu_acm_1084.rar_ACM_HDU10_acm10_hdu_hdu 1084" 提供的是一个关于杭电(HDU)ACM竞赛第1084题的解决方案。该题目可能是在编程竞赛中常见的算法问题,而ACM(国际大学生程序设计竞赛)是全球知名的编程...
【标题】"HDU-ACM_java.rar" 是一个针对杭州电子科技大学(HDU)ACM竞赛的资源压缩包,其中包含的是使用Java语言编写的算法解决方案。这个压缩包主要面向那些参与或准备参与ACM国际大学生程序设计竞赛(ICPC)的参赛...
这个压缩文件包含的是作者个人提交并解决的ACM(国际大学生程序设计竞赛,International Collegiate Programming Contest)题目,这些题目来源于HDU的在线编程平台。 【描述】"杭电的一些acm题目,都是我自己一个一...
HDU(杭州电子科技大学在线评测系统)是一个知名的编程竞赛平台,为编程爱好者提供了大量的算法题目进行练习和比赛。这个名为"HDU-2000-2099.rar_hdu"的压缩包包含了该平台从2000到2099共100道题目的源代码。这些...
ACM HDU 题目分类 ACM HDU 题目分类是指对 HDU 在线判题系统中题目的分类,总结了大约十来个分类。这些分类将有助于编程选手更好地理解和解决问题。 DP 问题 DP(Dynamic Programming,动态规划)是一种非常重要...
一、内容 TT and FF are ... friends. Uh... very very good friends -________-b FF is a bad boy, he is always wooing TT to play the following game with him. This is a very humdrum game....
HDUACM2010版03递推求解.ppt
"hdu.rar_hdu"这个压缩包文件很可能是某位程序员整理的他在HDU上解决过的题目代码集合。这些代码通常包含了对各种算法的应用,例如排序、搜索、图论、动态规划等,对于学习算法和准备编程竞赛的初学者来说是一份宝贵...
【标题】"HDU.rar_hdu_hdu07_com_shownv9b_www.563hdu." 暗示这是一个与HDU(杭州电子科技大学在线编程平台)相关的压缩包,其中可能包含了该平台上的编程竞赛题目或练习题目的源代码。"hdu07"可能是某个特定题目的...