1

为什么这段代码给我的答案是 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

4 回答 4

3

因为gcd(25, 100) = 25大概

于 2011-08-03T10:20:36.913 回答
2

它被称为欧几里得算法

于 2011-08-03T10:22:31.923 回答
2

这是一个快速计算,您也可以通过调试程序来查看它是如何工作的......

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

如果您还看不到,该链接将向您展示如何完成计算。希望这可以帮助。

于 2011-08-03T10:31:58.063 回答
0

while 循环是这样工作的

窝!= 0 100 != 0

内循环

t = 25(登)

0 = 25 % 100

数量 = 25 (t)

返回 25(数量)

所以结果是 25

于 2011-08-03T10:25:00.527 回答