[解题报告]【第23题】给定 a 和 b,代表分数 a / b,求它的最简分数

目录

零、写在前面

一、主要知识点

1.最简分数

二、课后习题

1979. 找出数组的最大公约数

写在最后


零、写在前面

        这个系列不经常更新,尝试去完善这部分的所有题解吧。

【第23题】给定 a 和 b,代表分数 a / b,求它的最简分数https://blog.csdn.net/WhereIsHeroFrom/article/details/118272863icon-default.png?t=LA92https://blog.csdn.net/WhereIsHeroFrom/article/details/118272863


一、主要知识点

1.最简分数

有了昨天的最大公约数,求最简分数其实就是求分子分母的最大公约数,然后除掉就好了。

#include <stdio.h>
int gcd(int a, int b) {//辗转除 求最大公约数
    return !b ? a : gcd(b, a % b);   
}
int main() {
    int a, b;
    while(scanf("%d %d", &a, &b) != EOF) {
        int g = gcd(a, b);    
        printf("%d/%d\n", a/g, b/g);    //求最简分数
    } 
    return 0;
}

二、课后习题

1979. 找出数组的最大公约数

1979. 找出数组的最大公约数https://leetcode-cn.com/problems/find-greatest-common-divisor-of-array/

题目描述

给你一个整数数组 nums ,返回数组中最大数和最小数的 最大公约数 。

两个数的 最大公约数 是能够被两个数整除的最大正整数。

思路

先找到最大最小值,然后求最大公约数就好了。不是,,,这是昨天的题啊-.-

int 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);
}

写在最后

考完一门,还有四门,,,啊!!!!写写题解放松一下。

Guess you like

Origin blog.csdn.net/qq_17593855/article/details/121512522