A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://TheAlgorithms.github.io/C-Plus-Plus/d4/d32/fibonacci__fast_8cpp_source.html below:

TheAlgorithms/C++: math/fibonacci_fast.cpp Source File

Go to the documentation of this file. 31constexpr

uint64_t MAX = 93;

38

uint64_t

fib

(uint64_t n) {

41 static

uint64_t f1 = 1, f2 = 1;

46 throw

std::invalid_argument(

"Cannot compute for n>="

+ std::to_string(MAX) +

47 " due to limit of 64-bit integers"

);

65

assert(

fib

(1) == 1);

66

assert(

fib

(2) == 1);

67

assert(

fib

(3) == 2);

68

assert(

fib

(4) == 3);

69

assert(

fib

(5) == 5);

70

assert(

fib

(6) == 8);

71

assert(

fib

(7) == 13);

72

assert(

fib

(8) == 21);

73

assert(

fib

(9) == 34);

74

assert(

fib

(10) == 55);

75

assert(

fib

(11) == 89);

76

assert(

fib

(12) == 144);

77

assert(

fib

(13) == 233);

78

assert(

fib

(14) == 377);

79

assert(

fib

(15) == 610);

80

assert(

fib

(16) == 987);

81

assert(

fib

(17) == 1597);

82

assert(

fib

(18) == 2584);

83

assert(

fib

(19) == 4181);

84

assert(

fib

(20) == 6765);

85

assert(

fib

(21) == 10946);

86

assert(

fib

(22) == 17711);

87

assert(

fib

(23) == 28657);

88

assert(

fib

(24) == 46368);

89

assert(

fib

(25) == 75025);

90

assert(

fib

(26) == 121393);

91

assert(

fib

(27) == 196418);

92

assert(

fib

(28) == 317811);

93

assert(

fib

(29) == 514229);

94

assert(

fib

(30) == 832040);

95

assert(

fib

(31) == 1346269);

96

assert(

fib

(32) == 2178309);

97

assert(

fib

(33) == 3524578);

98

assert(

fib

(34) == 5702887);

99

assert(

fib

(35) == 9227465);

100

assert(

fib

(36) == 14930352);

101

assert(

fib

(37) == 24157817);

102

assert(

fib

(38) == 39088169);

103

assert(

fib

(39) == 63245986);

104

assert(

fib

(40) == 102334155);

105

assert(

fib

(41) == 165580141);

106

assert(

fib

(42) == 267914296);

107

assert(

fib

(43) == 433494437);

108

assert(

fib

(44) == 701408733);

109

assert(

fib

(45) == 1134903170);

110

assert(

fib

(46) == 1836311903);

111

assert(

fib

(47) == 2971215073);

112

assert(

fib

(48) == 4807526976);

113

assert(

fib

(49) == 7778742049);

114

assert(

fib

(50) == 12586269025);

115

assert(

fib

(51) == 20365011074);

116

assert(

fib

(52) == 32951280099);

117

assert(

fib

(53) == 53316291173);

118

assert(

fib

(54) == 86267571272);

119

assert(

fib

(55) == 139583862445);

120

assert(

fib

(56) == 225851433717);

121

assert(

fib

(57) == 365435296162);

122

assert(

fib

(58) == 591286729879);

123

assert(

fib

(59) == 956722026041);

124

assert(

fib

(60) == 1548008755920);

125

assert(

fib

(61) == 2504730781961);

126

assert(

fib

(62) == 4052739537881);

127

assert(

fib

(63) == 6557470319842);

128

assert(

fib

(64) == 10610209857723);

129

assert(

fib

(65) == 17167680177565);

130

assert(

fib

(66) == 27777890035288);

131

assert(

fib

(67) == 44945570212853);

132

assert(

fib

(68) == 72723460248141);

133

assert(

fib

(69) == 117669030460994);

134

assert(

fib

(70) == 190392490709135);

135

assert(

fib

(71) == 308061521170129);

136

assert(

fib

(72) == 498454011879264);

137

assert(

fib

(73) == 806515533049393);

138

assert(

fib

(74) == 1304969544928657);

139

assert(

fib

(75) == 2111485077978050);

140

assert(

fib

(76) == 3416454622906707);

141

assert(

fib

(77) == 5527939700884757);

142

assert(

fib

(78) == 8944394323791464);

143

assert(

fib

(79) == 14472334024676221);

144

assert(

fib

(80) == 23416728348467685);

145

assert(

fib

(81) == 37889062373143906);

146

assert(

fib

(82) == 61305790721611591);

147

assert(

fib

(83) == 99194853094755497);

148

assert(

fib

(84) == 160500643816367088);

149

assert(

fib

(85) == 259695496911122585);

150

assert(

fib

(86) == 420196140727489673);

151

assert(

fib

(87) == 679891637638612258);

152

assert(

fib

(88) == 1100087778366101931);

153

assert(

fib

(89) == 1779979416004714189);

154

assert(

fib

(90) == 2880067194370816120);

155

assert(

fib

(91) == 4660046610375530309);

156

assert(

fib

(92) == 7540113804746346429);

161

assert(

false

&&

"Expected an invalid_argument exception to be thrown"

);

162

}

catch

(

const

std::invalid_argument& e) {

163 const

std::string expected_message =

"Cannot compute for n>="

+ std::to_string(MAX) +

164 " due to limit of 64-bit integers"

;

165

assert(e.what() == expected_message);

168

std::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