我试图用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)