Programma c++ numero volte un numero e’ div per l’altro con f. Ricors.

di SamueleGhiani il
4 risposte

Ciao, sto provando a fare il programma illustrato nel titolo da due ore, ma non capisco il problema, poichè mi da sempre 0 come risultato:

#include <iostream>

using namespace std;

int numvdiv(int n, int m,int j){
   
   j=0;
   
   int risultato;
   if(n%m!=0){
       
       risultato=j;
       
   }
   else{
       
       j++;
       n=n/m;
       risultato=numvdiv(n,m,j);
       
   }
   
   return risultato;
   
}

int main(){
   
   int a,b, max, min, risult, i=0;
   cout<<"inserire il primo valore: "<<"\n";
   cin>>a;
   cout<<"inserire il secondo valore: "<<"\n";
   cin>>b;
   
   risult=numvdiv(a,b,i);
   
   cout<<"il numero di volte che "<<a<<" e' divisibile per "<<b<<" e': "<<risult;
   
   return 0;
}

Qualcuno mi può aiutare?

4 Risposte

  • Quando mandi del codice devi usare il tasto <> ed invluderlo

  • Non ho capito cosa devo fare e dove devo farlo

  • 09/12/2022 - SamueleGhiani ha scritto:


    Non ho capito cosa devo fare e dove devo farlo

    Nell'editor di testo dove hai scritto il post, clicca in alto sull'icona con le “< >” e ti compare una casella di testo dove puoi incollare il codice. Se scegli un linguaggio dal menu a tendina, ti colora anche le parole chiave.

    La traccia spiegala nel post se è lunga. 

  • Devi eliminare la prima istruzione della funzione ricorsiva, cioè j=0; altrimenti azzerri ogni volta la variabile j.

    Comunque, dopo aver condiviso il suggerimento che ti hanno dato da chi mi ha preceduto, quando ti trovi ancora in difficoltà ti suggerisco di inserire in punti opportuni del tuo codice una istruzione di output per vedere il valore delle tue variabili o utilizzare gli strumenti di debug fornite dall'ambiente di sviluppo adoperato.

Devi accedere o registrarti per scrivere nel forum
4 risposte