uint64_t MAX = 93;
38uint64_t
fib(uint64_t n) {
41 staticuint64_t f1 = 1, f2 = 1;
46 throwstd::invalid_argument(
"Cannot compute for n>="+ std::to_string(MAX) +
47 " due to limit of 64-bit integers");
65assert(
fib(1) == 1);
66assert(
fib(2) == 1);
67assert(
fib(3) == 2);
68assert(
fib(4) == 3);
69assert(
fib(5) == 5);
70assert(
fib(6) == 8);
71assert(
fib(7) == 13);
72assert(
fib(8) == 21);
73assert(
fib(9) == 34);
74assert(
fib(10) == 55);
75assert(
fib(11) == 89);
76assert(
fib(12) == 144);
77assert(
fib(13) == 233);
78assert(
fib(14) == 377);
79assert(
fib(15) == 610);
80assert(
fib(16) == 987);
81assert(
fib(17) == 1597);
82assert(
fib(18) == 2584);
83assert(
fib(19) == 4181);
84assert(
fib(20) == 6765);
85assert(
fib(21) == 10946);
86assert(
fib(22) == 17711);
87assert(
fib(23) == 28657);
88assert(
fib(24) == 46368);
89assert(
fib(25) == 75025);
90assert(
fib(26) == 121393);
91assert(
fib(27) == 196418);
92assert(
fib(28) == 317811);
93assert(
fib(29) == 514229);
94assert(
fib(30) == 832040);
95assert(
fib(31) == 1346269);
96assert(
fib(32) == 2178309);
97assert(
fib(33) == 3524578);
98assert(
fib(34) == 5702887);
99assert(
fib(35) == 9227465);
100assert(
fib(36) == 14930352);
101assert(
fib(37) == 24157817);
102assert(
fib(38) == 39088169);
103assert(
fib(39) == 63245986);
104assert(
fib(40) == 102334155);
105assert(
fib(41) == 165580141);
106assert(
fib(42) == 267914296);
107assert(
fib(43) == 433494437);
108assert(
fib(44) == 701408733);
109assert(
fib(45) == 1134903170);
110assert(
fib(46) == 1836311903);
111assert(
fib(47) == 2971215073);
112assert(
fib(48) == 4807526976);
113assert(
fib(49) == 7778742049);
114assert(
fib(50) == 12586269025);
115assert(
fib(51) == 20365011074);
116assert(
fib(52) == 32951280099);
117assert(
fib(53) == 53316291173);
118assert(
fib(54) == 86267571272);
119assert(
fib(55) == 139583862445);
120assert(
fib(56) == 225851433717);
121assert(
fib(57) == 365435296162);
122assert(
fib(58) == 591286729879);
123assert(
fib(59) == 956722026041);
124assert(
fib(60) == 1548008755920);
125assert(
fib(61) == 2504730781961);
126assert(
fib(62) == 4052739537881);
127assert(
fib(63) == 6557470319842);
128assert(
fib(64) == 10610209857723);
129assert(
fib(65) == 17167680177565);
130assert(
fib(66) == 27777890035288);
131assert(
fib(67) == 44945570212853);
132assert(
fib(68) == 72723460248141);
133assert(
fib(69) == 117669030460994);
134assert(
fib(70) == 190392490709135);
135assert(
fib(71) == 308061521170129);
136assert(
fib(72) == 498454011879264);
137assert(
fib(73) == 806515533049393);
138assert(
fib(74) == 1304969544928657);
139assert(
fib(75) == 2111485077978050);
140assert(
fib(76) == 3416454622906707);
141assert(
fib(77) == 5527939700884757);
142assert(
fib(78) == 8944394323791464);
143assert(
fib(79) == 14472334024676221);
144assert(
fib(80) == 23416728348467685);
145assert(
fib(81) == 37889062373143906);
146assert(
fib(82) == 61305790721611591);
147assert(
fib(83) == 99194853094755497);
148assert(
fib(84) == 160500643816367088);
149assert(
fib(85) == 259695496911122585);
150assert(
fib(86) == 420196140727489673);
151assert(
fib(87) == 679891637638612258);
152assert(
fib(88) == 1100087778366101931);
153assert(
fib(89) == 1779979416004714189);
154assert(
fib(90) == 2880067194370816120);
155assert(
fib(91) == 4660046610375530309);
156assert(
fib(92) == 7540113804746346429);
161assert(
false&&
"Expected an invalid_argument exception to be thrown");
162}
catch(
conststd::invalid_argument& e) {
163 conststd::string expected_message =
"Cannot compute for n>="+ std::to_string(MAX) +
164 " due to limit of 64-bit integers";
165assert(e.what() == expected_message);
168std::cout <<
"All Fibonacci tests have successfully passed!\n";
uint64_t fib(uint64_t n)
Function to compute the nth Fibonacci number.
static void test()
Function to test the Fibonacci computation.
int main()
Main Function.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4