Gli esercizi
Testi e soluzioni di alcuni esercizi
Funzioni per il calcolo del fattoriale
/*
**  fattoriale.c
**
**  Legge in input un numero intero e stampa in output il suo
**  fattoriale (n * (n-1) * (n-2) * ... * 1) utilizzando una
**  funzione iterativa ed una ricorsiva.
**
**  Marco Liverani (liverani@mat.uniroma3.it) - Marzo 2001
*/
#include <stdlib.h>
#include <stdio.h>
/*
 *  fattoriale con algoritmo iterativo
 */
long fattoriale1(int n) {
  long f=1;
  while (n>1) {
    f = f * n;
    n--;
  }
  return(f);
}
/*
 *  fattoriale con algoritmo ricorsivo
 */
long fattoriale2(int n) {
  long f;
  if (n>1) {
    f = n * fattoriale2(n-1);
  } else {
    f = 1;
  }
  return(f);
}
/*
 *  funzione principale (main)
 */
int main(void) {
  int n;
  long f;
  printf("Inserisci un intero positivo: ");
  scanf("%d", &n);
  f = fattoriale1(n);
  printf("Algoritmo iterativo: %d! = %ld\n", n, f);
  f = fattoriale2(n);
  printf("Algoritmo ricorsivo: %d! = %ld\n", n, f);
  return(0);
}