1

如何用 Java 编写这段代码?

def gcd(a, b):
    """
    Calculate the Greatest Common Divisor of a and b.
    Unless b==0, the result will have the same sign as b (so that when
    b is divided by it, the result comes out positive).
    """
    while b:
        a, b = b, a%b
    return a

while (b) {由于Type mismatch错误,我似乎无法在 Java 中执行此操作。看来我也不能a, b = b, a%b完全用Java做这条线。

4

2 回答 2

1
public static int gcd(int a, int b) {
        int temp;
        while(b != 0) {
            temp = a;
            a = b;
            b = temp % b;
        }
        return a;
}

Java 期望 的条件while是布尔值,而不是int.

a, b = b, a%b语法在 Java 中不起作用。您需要单独完成作业。

所以你可以设置a = b,然后设置b = a % b。我使用了一个临时变量来保存 的旧值,a以便我可以计算(在我用a % b覆盖之前)。aa = b

于 2013-08-05T21:38:20.840 回答
0

你真的需要一点时间吗?它可以很简单——

public static int gcd(int a, int b) {

   if (b == 0) return a;

   return gcd(b, a % b);

}
于 2013-08-05T21:53:10.940 回答