Page 581 - Informatica dalla A a Z
P. 581

int n;

             printf(“Calcolo del fattoriale - Digita un numero naturale: ”);
             scanf(“%d”, &n);
             printf(“Il fattoriale del numero %d e’: %ld\n”, n, fattoriale(n));
            }
            long fattoriale(long x)
           {
             if (x==0)
                return 1;
             else
               return x*fattoriale(x-1);
           }


           L’unica cosa a cui prestare attenzione quando si creano delle procedure di ricorsione, è
           che non vadano in “loop”, cioè si crei un ciclo infinito, da cui non si può uscire, o che non

           esaurisca completamente le risorse del sistema.


           Esempio2: Fibonacci.


              #include <stdio.h>


              long fibonacci( long );


              int main()
              {
                  long result, number;


                  printf( "Inserisci un intero: " );
                  scanf( "%ld", &number );
                  result = fibonacci( number );
                  printf( "Fibonacci( %ld ) = %ld\n", number, result );
                  return 0;
              }



              /* Recursive definition of function fibonacci */
              long fibonacci( long n )
              {
                  if ( n == 0 || n == 1 )
                  return n;
                  else
                  return fibonacci( n - 1 ) + fibonacci( n - 2 );
              }




                                                            577
   576   577   578   579   580   581   582   583   584   585   586