[解题报告]【第22题】给定 a 和 b,求它们的最大公约数 | 辗转相除法

简介: [解题报告]【第22题】给定 a 和 b,求它们的最大公约数 | 辗转相除法

目录


零、写在前面


一、主要知识点


       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);
}
相关文章
|
3月前
|
算法
求最大公约数和最小公倍数的算法
求最大公约数和最小公倍数的算法
24 0
|
5月前
|
C++
筛质数、分解质因数和快速幂的应用
筛质数、分解质因数和快速幂的应用
45 0
|
9天前
|
算法 测试技术 C#
【数学】【数论】【最大公约数】1819. 序列中不同最大公约数的数目
【数学】【数论】【最大公约数】1819. 序列中不同最大公约数的数目
|
3月前
|
算法 Python
最小公倍数算法
最小公倍数算法
|
9月前
AcWing 868. 筛质数
AcWing 868. 筛质数
|
8月前
|
算法 C语言 C++
【数论】最大公约数、约数的个数与约数之和定理
先来科普下什么是约数:当a能被b整除,我们就说b为a的约数,b的倍数为a
72 0
|
算法
求最大公约数和最小公倍数的几种算法
求最大公约数和最小公倍数的几种算法
88 0
对分查找、欧几里得算法求最大公约数
对分查找、欧几里得算法求最大公约数
每日一题——最大回文数乘积
每日一题——最大回文数乘积
77 0
求解最大公约数和最小公倍数
求解最大公约数和最小公倍数
求解最大公约数和最小公倍数