Исходя из того, как они решили эту проблему на бумаге:
http://www.wikihow.com/Find-the-Greatest-Common-Divisor-of-Two-Integers
Я пытаюсь решить для наибольшего общего делителя в Java, используя 108 как m и 30 как n. Проблема в том, что когда я запускаю программу, результат заканчивается 0. Я знаю, что могу сделать этот метод, потому что сам написал код, но каждый раз, когда я пишу такой метод, я нажимаю камень преткновения:
public static double getGcd_nr(int m, int n){
int dividend = m;
int divisor = n;
int quotient = dividend/divisor;
int remainder = dividend % divisor;
int gcd = 0;
for(int i = divisor * quotient + remainder; i > 0; i--){
dividend = divisor;
divisor = remainder;
if (remainder == 0){
gcd = divisor;
}
}
return gcd;
}
Пожалуйста, помогите мне выполнить то, что мне нужно. Мне нужно написать свой собственный код, а не копировать чужой.
while(m!=n)
{
if(m >= n-1)
m = m-n;
else
n = n - m;
}
return m;
Нерекурсивное решение для нахождения gcd двух чисел.
quotient
иremainder
? Я так полагаю, из-за (в настоящее время избыточного) переназначенияdividend
. Вы не; переназначениеdividend
иdivisor
- это не одно и то же.