题解 | #小乐乐与欧几里得#

小乐乐与欧几里得

https://www.nowcoder.com/practice/da13e0cf321e4df9acd0fdf0a433cbb0

#include <stdio.h>
int main() {
    long n = 0, m = 0, remainder = 0, max = 0,
         min = 0;  //使用long类型变量,避免数据溢出
    scanf("%ld%ld", &n, &m);

    //定义两个变量来存放m,n的值,并进行大小判断;
    //因为后续求最小公倍数还需用到初始的m,n值,所以不可直接改变其初始值
    max = m >= n ? m : n;
    min = m < n ? m : n;

    //辗转相除法
    while (max % min) { //余数为0时循环结束,最大公约数为min
        remainder = max % min;
        max = min;  //余数一定小于除数,所以不用判断remainder和min大小
        min = remainder;
    }

    printf("%ld", min + m * n / min);  //最大公约数*最小公倍数 = m*n;

    return 0;
}

全部评论

相关推荐

NBA球星伦纳德:jd是这样的,工作连拧螺丝都算不上
点赞 评论 收藏
分享
牛客52811839...:实习要写出来业务和产出,你这写的像流水账没人看。项目经历也没有,换个极简简历试试
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务