Java по модулю оператора и GCD - PullRequest
1 голос
/ 03 августа 2011

Почему этот код дает мне ответ 25?

public int findGcd() {
    int num = this.num;
    int den = this.den;

    while (den != 0) {
        int t = den;
        den = num % den;
        num = t;
    }

    return num;
}

Это основной метод:

public class FractionTest {
    public static void main(String args[]) {
        Fraction f = new Fraction();
        f.num = 25;
        f.den = 100;
        f.findGcd();
    }
}

Может ли кто-нибудь предоставить мне полный процесс того, как все программы работают или запускаются?

Ответы [ 4 ]

3 голосов
/ 03 августа 2011

Потому что gcd(25, 100) = 25 вероятно

2 голосов
/ 03 августа 2011

Вот быстрый расчет, который вы также можете выполнить, отладив вашу программу, чтобы увидеть, как она работает ...

http://gcd.awardspace.com/?num1=25&num2=100&OG=on&SC=on&RF=on&RC=on

Ссылка показывает, как выполняется расчет, если выпока не вижуНадеюсь, это поможет.

2 голосов
/ 03 августа 2011
0 голосов
/ 03 августа 2011

Цикл while работает следующим образом

день! = 0 100! = 0

внутренний цикл

t = 25 (ден)

0 = 25% 100

число = 25 (т)

возврат 25 (число)

Итак, результат 25

...