Re: Fibonacci implementation
- From: CBFalconer <cbfalconer@xxxxxxxxx>
- Date: Thu, 31 Aug 2006 00:31:49 -0400
Christian Christmann wrote:
I'm looking for a non-recursive implementation of the algorithm to
calculate Fibonacci numbers. Any language is OK (C/C++, pseudo code
prefered).
#include <stdio.h>
#include <stdlib.h>
/* ------------------*/
/* deliberately written to upset some style mavens */
/* returns ULONG_MAX for overflow */
static unsigned long fibo(unsigned int n)
{
unsigned long pprev, prev, value;
if ((pprev = 0) == n) value = pprev;
else if ((prev = 1) == n) value = prev;
else do {
value = pprev + prev; pprev = prev; prev = value;
if (value < pprev) {
value = -1; /* ULONG_MAX, overflow */
goto x;
}
} while (2 <= --n);
x: return value;
} /* fibo */
/* ------------------*/
int main(int argc, char **argv)
{
unsigned int n;
if (2 != argc) puts("Usage: fibo N");
else {
n = strtoul(argv[1], NULL, 10);
printf("fibonacci(%u) = %lu\n", n, fibo(n));
}
return 0;
} /* main */
--
Chuck F (cbfalconer@xxxxxxxxx) (cbfalconer@xxxxxxxxxxxxx)
Available for consulting/temporary embedded and systems.
<http://cbfalconer.home.att.net> USE maineline address!
.
- References:
- Fibonacci implementation
- From: Christian Christmann
- Fibonacci implementation
- Prev by Date: Re: Script Parser
- Next by Date: Re: looking for programmers who are preparing and afraid of panflu
- Previous by thread: Re: Fibonacci implementation
- Next by thread: Re: Fibonacci implementation
- Index(es):
Relevant Pages
|