Формула Бине:
При работе с типом double имеет место быть некоторая погрешность. При больших числах относительная погрешность стремится к 0.
Код:
#include <iostream>#include <cmath>#define sqrt5 sqrt(5)#define (1 + sqrt5)/2#define n (1 - sqrt5)/2long long fibBinet(int n) { return (long long) round((pow(, n) - pow(n, n)) / sqrt5);}int main() { long long binet77 = fibBinet(77); std::cout << "fibBinet(77) = " << binet77 << " (5527939700884757)" << std::endl; std::cout << "A = " << abs(5527939700884757ll - binet77) << std::endl; std::cout << "B = " << 5527939700884757ll / binet77 << std::endl; return 0;}SCREEN 7
cls
LINE (60, 20)-(0, 80)
LINE (60, 20)-(120, 80)
LINE (0, 80)-(120, 80)
LINE (80, 40)-(80, 20)
LINE (80, 20)-(100, 20)
LINE (100, 20)-(100, 60)
LINE (20, 80)-(20, 160)
LINE (20, 160)-(100, 160)
LINE (100, 160)-(100, 80)
LINE (30, 160)-(30, 110)
LINE (30, 110)-(60, 110)
LINE (60, 110)-(60, 160)
LINE (70, 90)-(90, 90)
LINE (90, 90)-(90, 110)
LINE (90, 110)-(70, 110)
LINE (70, 110)-(70, 90)
LINE (80, 90)-(80, 110)
LINE (70, 100)-(90, 100)
CIRCLE (200, 20), 20
LINE (150, 20)-(170, 20)
LINE (230, 20)-(250, 20)
LINE (180, 40)-(160, 60)
LINE (220, 40)-(240, 60)
LINE (200, 50)-(200, 70)
2 байт = 16 бит = 2^16 = 65536.
ответ: 2 байта