目录
零、写在前面
一、主要知识点
1.辗转相除法
二、课后习题
1979. 找出数组的最大公约数
写在最后
零、写在前面
这个系列不经常更新,今天这个题目因为必须写题解才能打卡,唉,主要知识点在
【第22题】给定 a 和 b,求它们的最大公约数 | 辗转相除法https://blog.csdn.net/WhereIsHeroFrom/article/details/118272816
https://blog.csdn.net/WhereIsHeroFrom/article/details/118272816
一、主要知识点
1.辗转相除法
其实这是高中知识?还是初中?其实就是不断的辗转取余。好像也叫除留余数法。
int GCD(int a,int b){ //如果b有值的话继续下一层除留余数,如果a被b除尽就返回a return b ? GCD(b,a%b) : a; }
二、课后习题
1979. 找出数组的最大公约数
1979. 找出数组的最大公约数
https://leetcode-cn.com/problems/find-greatest-common-divisor-of-array/
题目描述
给你一个整数数组 nums ,返回数组中最大数和最小数的 最大公约数 。
两个数的 最大公约数 是能够被两个数整除的最大正整数。
思路
先找到最大最小值,然后求最大公约数就好了。
i
nt GCD(int a,int b){//辗转相除 return b ? GCD(b,a%b) : a; } int findGCD(int* nums, int numsSize){ int max = nums[0], min = nums[0] ;//最大最小 for(int i = 1; i < numsSize; i++){ if(max < nums[i]) max = nums[i]; if(min > nums[i]) min = nums[i]; } return GCD(max,min); }