Divisione in java
ciao ragazzi, devo creare un programma in java che letti due numeri a e b, mi crei il procedimento della divisione tra a e b.
allora io so che R cioè il resto è dato dal modulo e cioè $ R=a mod b $ e Q cioè il quoziente è appunto dato da $ Q=a/b $.
Il raginamento da fare è:
se b divido a per b e ottengo Q
moliplico Q per b e ottengo un numero che sottratto ad a mi dà R
R quindi diventa il mio nuovo a
se b è ancora < di a ripeto il procedimento altrimenti mi fermo e dò in output Q e R.
però come lo faccio in java?
allora io so che R cioè il resto è dato dal modulo e cioè $ R=a mod b $ e Q cioè il quoziente è appunto dato da $ Q=a/b $.
Il raginamento da fare è:
se b divido a per b e ottengo Q
moliplico Q per b e ottengo un numero che sottratto ad a mi dà R
R quindi diventa il mio nuovo a
se b è ancora < di a ripeto il procedimento altrimenti mi fermo e dò in output Q e R.
però come lo faccio in java?

Risposte
Io sono sempre stato scarso in fatto di programmazione, ma ho notato che in questo ambito si impara provando e sbagliando, quindi mi sento di consigliarti di buttare giù qualche riga in Java e postarla qui per ricevere correzioni o proposte di miglioramento. Prova

La tua descrizione del procedimento è un po' confusa ed è forse per questo che non riesci a scrivere correttamente il codice in Java che lo implementa. Quello che hai descritto in Java verrebbe qualcosa del genere
Ma Tutto ciò è incompleto e anche non corretto. Per prima cosa il ciclo verrà sempre eseguito una sola volta. Infatti, per la definizione di divisione intera, \( R = a \pmod b = a - (a/b) \cdot b < b \). Inoltre, non viene considerato il caso in cui si abbia \(a < b\) fin dall'inizio del metodo..
while (b < a) { Q = a / b; R = a - Q*b; a = R; } // codice per restituire Q ed R
Ma Tutto ciò è incompleto e anche non corretto. Per prima cosa il ciclo verrà sempre eseguito una sola volta. Infatti, per la definizione di divisione intera, \( R = a \pmod b = a - (a/b) \cdot b < b \). Inoltre, non viene considerato il caso in cui si abbia \(a < b\) fin dall'inizio del metodo..