约数

1.求一个数组的最大公约数

输入: nums = {12, 24, 36, 48} 输出: 12

知识点:

std::gcd(),求两个数的最大公约数

#include <iostream>
#include <vector>
#include <numeric> // 包含 gcd

using namespace std;

int findGCD(vector<int>& nums) {
    int result = nums[0];
    for (int i = 1; i < nums.size(); ++i) {
        result = gcd(result, nums[i]);
        
        // 如果中间结果为 1,可以直接提前返回
        if (result == 1) break;
    }
    return result;
}

int main() {
    vector<int> nums = {12, 24, 36, 48};
    cout << "数组的最大公约数是:" << findGCD(nums) << endl;
    return 0;
}

 

posted @ 2025-07-12 14:01  最近饭吃的很多  阅读(10)  评论(0)    收藏  举报