ecco la domanda:.Come scrivere un semplice programma Java che trova il massimo comun divisore tra due numeri?
"Scrivi un metodo chiamato GCD che accetta due interi come parametri e restituisce il massimo comune divisore di due numeri il massimo comune divisore (MCD) di due numeri interi A e B è il più grande intero che è un fattore di entrambi a e B. Il GCD di qualsiasi numero e 1 è 1 e il GCD di qualsiasi numero e 0 è quel numero
Un modo efficiente per calcolare il GCD di due numeri è quello di utilizzare Algoritmo di Euclide, che afferma quanto segue:
GCD(A, B) = GCD(B, A % B)
GCD(A, 0) = Absolute value of A"
Sono davvero confuso da w per risolvere questo problema. Voglio solo alcuni suggerimenti e suggerimenti su cosa ho fatto di sbagliato nel programma che ho finora. (Devo inserire uno scanner, questa è la mia esigenza dell'insegnante.) Non darmi un codice completo perché voglio risolverlo da solo. Forse dammi solo un suggerimento su come incorporare questa formula che vedi sopra. (E se ti stai chiedendo perché ho inserito il valore == 0, è perché pensavo che se hai due numeri, diciamo 0 e 90, il loro GCD sarebbe 0 giusto ??)
Inoltre, il mio codice ha per includere cicli while ... Avrei preferito se i loop ...
Grazie in anticipo! :)
mio programma in corso:
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
int a = console.nextInt();
int b = console.nextInt();
gcd (a, b);
}
public static void gcd(int a, int b) {
System.out.print("Type in two numbers and I will print outs its Greatest Common Divisor: ");
int gcdNum1 = console.nextInt();
int gcdNum2 = console.nextInt();
while (gcdNum1 == 0) {
gcdNum1 = 0;
}
while (gcdNum2 > gcdNum1) {
int gcd = gcdNum1 % gcdNum2;
}
System.out.print(gcdNum1 + gcdNum2);
}
}
Suggerimento: è necessaria una chiamata ricorsiva. – SergeyS
Stai passando 'a' e' b' al tuo metodo come parametri, quindi non c'è bisogno di leggerli di nuovo dalla console (e la variabile 'console' non è visibile nel metodo, quindi il tuo codice non verrà compilato comunque) . Inoltre, il primo ciclo sembra piuttosto infinito, se inserito. – jlordo
* Avrei preferito se i loop ... * Questo è piuttosto complicato poiché 'if' non è un ciclo – zapl