文章

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());

    &...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发