华为笔试——求最小公倍数|刷题打卡

427 阅读1分钟

掘金团队号上线,助你 Offer 临门! 点击 查看详情

一、题目描述:

image.png

二、思路分析:

求最小公倍数的方法有很多种,这里介绍一种:设最大公因数为c。

则有A = xc, B = yc

由于 x,y互质,则最大公因数为xyc,即 A×Bc\frac{A \times B}{c}

三、AC 代码:

#include<stdio.h>
#include<iostream>
using namespace std;

int main(){
    int A, B;
    cin >> A >> B;
    
    int a = A,b = B;
    while(b != 0){
        int tmp = b;
        b = a % b;
        a = tmp;
    }
    cout << A*B/a << endl;
}

四、总结:

其实是为了递归做的这题,结果就直接做出来了,有些尴尬

#include<stdio.h>
#include<iostream>
using namespace std;
int gdc(int a, int b){
    if(b == 0)return a;
    return gdc(b, a%b);
    
}
int main(){
    int A, B;
    cin >> A >> B;
    
    int a = A,b = B;
    
    cout << A*B/ gdc(a,b) << endl;
}


比较一下时间,竟然递归的比较快 image.png