Next | Continued Fraction Arithmetic | 25 |
For instance, here's a continued fraction object that represents e:
struct st_cf_e { unsigned int n; };
And a method for interrogating it about its terms:
/* 0 1 2 3 4 5 6 7 8 9 10 11 12 e = [2; 1, 2, 1, 1, 4, 1, 1, 6, 1, 1, 8, 1, ...] */
int next_term_from_e(struct st_cf_e *cf) { unsigned int n = cf->n; cf->n += 1;
if (n == 0) return 2; else if (n % 3 == 2) return 2*(n/3)+2; else return 1; }
Then we can print it out like this:
struct st_cf_e e; e.n = 0;
while (1) { int next_term = next_term_from_e(&e); if (next_term == INFINITY) break; printf("%d ", next_term); } printf("\n");
Next | Back |