Esercizio 1
Dire quante volte un numero è divisibile per un altro tramite un metodo ricorsivo.
#include<iostream>using namespace std;
int ndiv(int n, int d,int i){
if(n%d!=0)return i;
else {
i++;
ndiv(n/d,d,i);
}//if
}//ndiv
main(){
cout< <ndiv(32,2,0);
}//main
Nel codice scritto si vede che la funzione deve essere opportunamente dotata di parametri:
int ndiv(int n, int d,int i);
essa, restituisce un intero che è il numero di volte che il numeratore
è divisibile per il numeratore.
La sua firma è così costituita
int n : numeratore
int d : denominatore
int i : contatore delle occorrenze di divisibilità
quest’ultimo parametro è ovviamente sempre inizializzato a zero ed in pratica
la funzione ndiv() se lo porta dietro incrementandolo ad ogni ricorrenza.
Se (n) è divisibile per (d) il contatore (i) viene incrementato e la funzione
chiama se stessa con parametro n/d al posto di n in caso contrario viene
restituito il contatore (i) al programma principale. Il denominatore (d)
rimane costante durante tutta l’esecuzione.