Corso IN110 Algoritmi e Strutture Dati

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);
}

Università degli Studi Roma Tre - Dipartimento di Matematica e Fisica - Corso di laurea in Matematica - Corso di Informatica 1 (IN110)

Author: Marco Liverani - Last modified: Tuesday October 29, 2019 - URI: http://www.mat.uniroma3.it/users/liverani/IN1/20010314b.shtml