小编Thi*_*cks的帖子

为什么我的GCD程序没有运行?

我试图用C中的欧几里德算法(递归地)找到两个数字的GCD,并且我确实知道它在数学上并不完全完美,因为它忽略了负数条件,但我只是希望这个用于现在的正数.

#include <stdio.h>

int gcd(int m, int n);

int main() {
    return gcd(60, 24);
}

int gcd(int m, int n) {
    if (m < n) {
        //swapping both a and b
        m = m + n;
        n = m - n;
        m = m - n;
    }
    if (m == n) {
        return m;
    } else {
        return gcd(n, m % n);   
    }
}
Run Code Online (Sandbox Code Playgroud)

c algorithm recursion function greatest-common-divisor

1
推荐指数
1
解决办法
149
查看次数