/* File: invertin.c */
/* Time-stamp: "2001-03-27 00:56:15 calvanes" */
/* Scopo: esempio di funzione ricorsiva */


/* Inverte le cifre di un numero intero usando una funzione ricorsiva ed una
   iterativa.
*/

#include <stdio.h>


void invertiRicorsiva(long n)
  /* Inverte le cifre di un numero intero.  Versione ricorsiva. */
{
  printf("%d", n % 10);
  if (n / 10 != 0)
    invertiRicorsiva(n / 10);
}  /* invertiRicorsiva */


void invertiIterativa(long n)
  /* Inverte le cifre di un numero intero.  Versione iterativa. */
{
  do {
    printf("%d", n % 10);
    n /= 10;
  } while (n != 0);
} /* invertiIterativa */


int main(void)
{
  long numero;

  printf("Scrivi un numero intero non negativo:    ");
  scanf("%ld", &numero);
  printf("Numero invertito con funzione ricorsiva: ");
  invertiRicorsiva(numero);
  printf("\nNumero invertito con funzione iterativa: ");
  invertiIterativa(numero);
  putchar('\n');

  return 0;
}  /* main */