/** Print ascending members of the Fibonacci sequence that are
representable as 64-bit signed integers, prefixed by their term
numbers, and followed by the ratio of successive terms, to
demonstrate the 1.618...^n growth (the ratio approaches the golden
ratio, (1 + sqrt(5))/2 = 1.6180339887498949, and reaches it (to
machine precision) at 41 terms: the fourth item on each line is
the difference from the golden ratio). */
#include
#include
#include
int
main(void)
{
long long lo = 1LL;
long long hi = 1LL;
long long n = 1LL;
double ratio;
double golden_ratio = (1.0 + sqrt(5.0))/2.0;
(void)printf("%2lld\t%19lld\n", n, lo);
while (hi > 0LL)
{
n++;
ratio = (double)hi/(double)lo;
(void)printf("%2lld\t%19lld\t%19.15f\t%19.15f\n",
n, hi, ratio, (ratio - golden_ratio));
hi = lo + hi;
lo = hi - lo;
}
return (EXIT_SUCCESS);
}