/** 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); }