文章
21
粉丝
0
获赞
6
访问
1.5k
GCD两种求法及其原理,和注意细节-最大公约数
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric> // C++17: std::gcd;C++14 可能需自己实现
using namespace std;
int gcd(int a, int b) {//最简真分数-gcd最大公约数等于1,
//并不是互质(6,9)
while (b) {
int r = a % b;
a = b;
b = r;//辗转相除法 :反复用较小数去除较大数的余数,直到余数为 0,此时的非零数就是 GCD。
}
return a;
}
int gcd1(int a, int b) {//递归版:小除大得余数,交换,直到余数为0
if (b == 0) return a;
return gcd(b, a % b);
}
int main() {
int n;
while (cin >> n) {
vector<int> xl(n);
for (int i = 0; i < n; i++) {
cin >> xl[i];
}
sort(xl.begin(), xl.end());
&...
登录后发布评论
暂无评论,来抢沙发