#include <iostream>
#include <cmath>
template<class T>
T Fi(const T& X) {
T Phi = (1 + std::sqrt(5)) / 2;
T A01 = std::pow(-1, std::fmod(X + 1, 3));
return std::log(std::sqrt(5) * X + std::sqrt(5 * (X * X) - 4 * A01) - std::log(2)) / std::log(Phi);
}
template<class T>
T F(const T& N) {
T Phi = (1 + std::sqrt(5)) / 2;
return (std::pow(Phi, N) - std::pow(-Phi, -N)) / std::sqrt(5);
}
int main() {
double A = F<double>(5);
double B = Fi<double>(5);
std::cout << A << std::endl;
std::cout << B<< std::endl;
std::cout << A * B << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgp0ZW1wbGF0ZTxjbGFzcyBUPgpUIEZpKGNvbnN0IFQmIFgpIHsKCVQgUGhpID0gKDEgKyBzdGQ6OnNxcnQoNSkpIC8gMjsKCVQgQTAxID0gc3RkOjpwb3coLTEsIHN0ZDo6Zm1vZChYICsgMSwgMykpOwoJcmV0dXJuIHN0ZDo6bG9nKHN0ZDo6c3FydCg1KSAqIFggKyBzdGQ6OnNxcnQoNSAqIChYICogWCkgLSA0ICogQTAxKSAtIHN0ZDo6bG9nKDIpKSAvIHN0ZDo6bG9nKFBoaSk7Cn0KdGVtcGxhdGU8Y2xhc3MgVD4KVCBGKGNvbnN0IFQmIE4pIHsKCVQgUGhpID0gKDEgKyBzdGQ6OnNxcnQoNSkpIC8gMjsKCglyZXR1cm4gKHN0ZDo6cG93KFBoaSwgTikgLSBzdGQ6OnBvdygtUGhpLCAtTikpIC8gc3RkOjpzcXJ0KDUpOwp9CgppbnQgbWFpbigpIHsKCglkb3VibGUgQSA9IEY8ZG91YmxlPig1KTsKCWRvdWJsZSBCID0gRmk8ZG91YmxlPig1KTsKCglzdGQ6OmNvdXQgPDwgQSA8PCBzdGQ6OmVuZGw7CglzdGQ6OmNvdXQgPDwgQjw8IHN0ZDo6ZW5kbDsKCXN0ZDo6Y291dCA8PCBBICogQiA8PCBzdGQ6OmVuZGw7CglyZXR1cm4gMDsKfQ==