/*
* Recursive Fibonacci program
*
* Matt Bishop, ECS 36A
*
* -- May 21, 2024 Original program
*/
#include <stdio.h>
/*
* the interior, recursive function
* called by fib, which does error checking
*/
int fibx(int n)
{
/* BASE CASE: n = 1 or 2, fibonacci number is 1 */
if (n == 1 || n == 2)
return(1);
/* recurse and return the value */
return(fibx(n-2) + fibx(n-1));
}
/*
* the interface
* this does *not* recurse; it checks for errors in n
* and returns an error code if found
* otherwise, it calls fibx repeatedly, printing out
* the fibonacci each step along the way
*
* n is numbert of Fibonacci numbers to compute
*/
int fib(int n)
{
int i; /* counter in a for loop */
/* computing negative or no numbers makes no sense */
if (n <= 0)
return(0);
/* loop, printing each fibonacci number as it is comnputed */
for(i = 1; i <= n; i++)
printf("%d ", fibx(i));
putchar('\n');
/* return success */
return(1);
}
|
ECS 36A, Programming & Problem Solving Version of April 2, 2024 at 12:13PM
|
You can get the raw source code here. |