找出数组的最大公约数
实例要求
- 1、给定一个整数数组 ,返回数组中最大数和最小数的最大公约数;
- 2、两个数的最大公约数是能够被两个数整除的最大正整数;
- 示例:
实例分析
- 1、要找到数组中最大数和最小数的最大公约数;
- 2、可以使用欧几里德算法;
- 3、这个算法可以用迭代的方式实现;
示例代码
int gcd(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;
}int findGCD(int* nums, int numsSize) {int minNum = nums[0];int maxNum = nums[0];// 找到数组中的最小值和最大值for (int i = 1; i < numsSize; i++) {minNum = (nums[i] < minNum) ? nums[i] : minNum;maxNum = (nums[i] > maxNum) ? nums[i] : maxNum;}// 计算最大公约数return gcd(minNum, maxNum);
}
运行结果