/* File: fibonacc.c */ /* Time-stamp: "2001-03-26 02:54:24 calvanes" */ /* Scopo: esempio di funzione ricorsiva con ricorsione multipla */ /* Funzione ricorsiva che dato un numero i >= 0 calcola il numero di Fibonacci i-esimo: L'i-esimo numero di Fibonacci F(i) e` definito attraverso la seguente definizione induttiva: F(i) = 0 se i = 0 F(i) = 1 se i = 1 F(i) = F(i-1) + F(i-2) se i >= 2 */ #include <stdio.h> long fibonacci(long i) /* Calcola l'i-esimo numero di Fibonacci. Si utilizza il tipo long in quanto i numeri di Fibonacci crescono molto velocemente. */ { if (i < 0) return -1; /* F(i) non e` definito per interi i negativi! */ if (i == 0) return 0; else if (i == 1) return 1; else return fibonacci(i-1) + fibonacci(i-2); } int main(void) { long n; printf("Inserire un intero >= 0: "); scanf("%ld", &n); printf("L' %ldo numero di Fibonacci e` %ld\n", n, fibonacci(n)); return 0; }