/* File: mcdricor.c */ /* Time-stamp: "2001-03-27 15:13:25 calvanes" */ /* Scopo: esempio di funzione ricorsiva */ /* Calcola il massimo comun divisore utilizzando un metodo ricorsivo */ /* Definizione induttiva di mcd(x,y) mcd(x,y) = x se y = 0 mcd(x,y) = mcd(y,r) se y > 0 e x = q*y + r, con 0 <= r < y */ #include <stdio.h> int mcd(int, int); /* prototipo della funzione */ int main(void) { int n1, n2 ; printf( "inserisci 2 interi positivi\n") ; scanf("%d%d", &n1, &n2); printf("mcd(%d,%d) = %d", n1, n2, mcd(n1, n2)); return 0; } /* main */ int mcd(int x, int y) { int resto; resto = x % y; if (resto == 0) return y; /* caso base */ else return mcd(y, resto); /* caso ricorsivo */ } /* mcd */