fork download
  1. #include <iostream>
  2. #include <cmath>
  3. #include <iostream>
  4. #include <cmath>
  5.  
  6. template<class T>
  7. // F(1) == F(2) == 1 なので X != 1 とする
  8. T Fi(const T& X) {
  9. T Phi = (1 + std::sqrt(5)) / 2;
  10. T A01 = std::pow(-1, std::fmod(X + 1, 3));
  11. return (std::log(std::sqrt(5) * X + std::sqrt(5 * (X * X) - 4 * A01)) - std::log(2)) / std::log(Phi);
  12. }
  13. template<class T>
  14. T F(const T& N) {
  15. T Phi = (1 + std::sqrt(5)) / 2;
  16.  
  17. return (std::pow(Phi, N) - std::pow(-Phi, -N)) / std::sqrt(5);
  18. }
  19.  
  20. int main() {
  21. std::size_t j = 0;
  22. for (std::size_t i = 2; i < 9; i++) {
  23. std::size_t N = F<double>(i);
  24. std::cout << N << ',' << Fi<double>(N) << std::endl;
  25. double N2=F<double>(i+1);
  26. for (j=N+1; j < N2-1; j++) {
  27. std::cout <<' '<< j << ',' << "-1" << std::endl;
  28. }
  29.  
  30. }
  31.  
  32. return 0;
  33.  
  34. }
Success #stdin #stdout 0s 4452KB
stdin
Standard input is empty
stdout
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