17int64_t fibonacci(int64_t n) {
 
   21    return fibonacci(n - 1) + fibonacci(n - 2);
 
   30int64_t fibonacci_dp(int64_t n) {
 
   31    std::vector<int64_t> dp(n + 2);
 
   34    for (int64_t i = 2; i <= n; i++) {
 
   35        dp[i] = dp[i - 1] + dp[i - 2];
 
   46int64_t fibonacci_bottom_up(int64_t n) {
 
   47    int64_t a = 0, b = 1, c = 0;
 
   51    for (int64_t i = 2; i <= n; i++) {
 
   65int64_t fibonacci_binet(int64_t n) {
 
   66    double phi = (std::sqrt(5) + 1) / 2;
 
   67    return (int64_t)std::round(std::pow(phi, n) / sqrt(5));