#include <iostream> #include <cmath> #include <iostream> #include <cmath> template<class T> // F(1) == F(2) == 1 なので X != 1 とする 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() { std::size_t j = 0; for (std::size_t i = 2; i < 9; i++) { std::size_t N = F<double>(i); std::cout << N << ',' << Fi<double>(N) << std::endl; double N2=F<double>(i+1); for (j=N+1; j < N2-1; j++) { std::cout <<' '<< j << ',' << "-1" << std::endl; } } return 0; }
Standard input is empty
1,1 2,3 3,4 4,-1 5,5 6,-1 7,-1 8,5.98701 9,-1 10,-1 11,-1 12,-1 13,7 14,-1 15,-1 16,-1 17,-1 18,-1 19,-1 20,-1 21,8 22,-1 23,-1 24,-1 25,-1 26,-1 27,-1 28,-1 29,-1 30,-1 31,-1 32,-1 33,-1