edutecnica

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.