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