Python вовсе и не нужен. Нужен только черновик
Для себя я расставил табуляции:
НАЧАЛО
ПОКА нашлось (555) ИЛИ нашлось (888)
ЕСЛИ нашлось (555)
ТО заменить (555, 8)
КОНЕЦ ЕСЛИ
ПОКА нашлось (888)
заменить (888, 5)
КОНЕЦ ПОКА
ЕСЛИ нашлось (555)
ТО заменить (555, 8)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Нам даётся число:
888888888888888888555
Нашлось 555, поэтому заменяем 555 на 8:
8888888888888888888
Все 888 заменяем на 5:
5555558
Заменяем 555 на 8:
85558
Начинаем общий цикл заново:
Нашлось 555, поэтому заменяем 555 на 8:
888
Все 888 меняем на 5:
5
ответ: 5
Формула Бине:
При работе с типом 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;}