#include #include "Utilities.h" unsigned int Fib[MAX_FIB]; /* Initializes MAX_FIB Fibonacci numbers. */ void InitFib(void) { short i = 45; Fib[0] = Fib[1] = 1; for (i = 2; i < MAX_FIB; i++) { Fib[i] = GetFib(i) + GetFib(i-1); } } /* Returns the Fibonacci number 'n'. */ unsigned int GetFib(int n) { if ((n > 0) && (n <= MAX_FIB)) { return (Fib[n-1]); } else { return 0; } } /* Sends a number between 0 and 65535 to stdout. */ void PutFib(unsigned int out) { unsigned int dec = 10, temp; if (out >= 10000) /* Value too large. */ { putchar('#'); /* Print a '#'. */ return; } putchar('\n'); while (dec <= out) { dec *= 10; } while ((dec /= 10) >= 10) { temp = out / dec; putchar('0' + temp); out -= temp * dec; } putchar('0' + out); }