(38)找出数组的最大公约数
文章目录
- 每日一言
- 题目
- 解题思路
- 代码
- 结语
每日一言
无论在什么样的社会里,一个人的理想,是为了多数人的利益,为了社会的进步,对社会生产力的发展起了促进作用,也就是说,合乎社会历史的发展规律,就是伟大的理想。——陶铸
题目
题目链接:找出数组的最大公约数
给你一个整数数组 nums ,返回数组中最大数和最小数的 最大公约数 。
两个数的 最大公约数 是能够被两个数整除的最大正整数。
-
示例 1:
输入:nums = [2,5,6,9,10]
输出:2
解释:
nums 中最小的数是 2
nums 中最大的数是 10
2 和 10 的最大公约数是 2 -
示例 2:
输入:nums = [7,5,6,8,3]
输出:1
解释:
nums 中最小的数是 3
nums 中最大的数是 8
3 和 8 的最大公约数是 1 -
示例 3:
输入:nums = [3,3]
输出:3
解释:
nums 中最小的数是 3
nums 中最大的数是 3
3 和 3 的最大公约数是 3
提示:
2 <= nums.length <= 1000
1 <= nums[i] <= 1000
解题思路
一步一步来,先找最大最小值,再求两数的最大公约数
代码
int findGCD(int* nums, int numsSize) {
int min = nums[0];
int max = nums[0];
//找最大和最小值
for(int i=1;i<numsSize;i++)
{
if(min > nums[i])
min = nums[i];
if(max < nums[i])
max = nums[i];
}
//求最大公约数,辗转相除法
int tmp = 0;
while(tmp = max%min)
{
max = min;
min = tmp;
}
return min;//返回最大公约数
}
结语
请给自己些耐心,一口吃不成胖子。
山外青山楼外楼,莫把百尺当尽头。
保持空杯心态加油努力吧!
都看到这里啦!真棒(*^▽^*)
可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家
编程小白写作,如有纰漏或错误,欢迎指正