zoukankan      html  css  js  c++  java
  • 求最大公约数(最小公倍数)

    【问题描述】

    用递归方法求两个数m和n的最大公约数(greatest common divisor)。(m>0,n>0)

    【大水题,大佬快绕】用辗转相除法求,递归实现。

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cmath>
     4 #include<algorithm>
     5 #include<cstring>
     6 using namespace std;
     7 int m, n;
     8 int gcd(int x, int y)
     9 {
    10     if(y == 0) return x;
    11     return (gcd(y, x % y));
    12 }
    13 int main()
    14 {
    15     scanf("%d%d", &m, &n);
    16     printf("gcd=%d
    ", gcd(m, n));
    17     return 0;
    18 }

    输入:28 8     输出:gcd = 4

    那么再水一把:求一个最小公倍数(least common multiple)。

    人人都知道,lcm(m, n) = m * n / gcd(m, n) 所以

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cmath>
     4 #include<algorithm>
     5 #include<cstring>
     6 using namespace std;
     7 int m, n;
     8 int gcd(int x, int y)
     9 {
    10     if(y == 0) return x;
    11     return (gcd(y, x % y));
    12 }
    13 int main()
    14 {
    15     scanf("%d%d", &m, &n);
    16     printf("lcm=%d
    ", m * n / gcd(m, n));  //别再看了,就改了这一行
    17     return 0;
    18 }
  • 相关阅读:
    [NOI2007]生成树计数
    [NOI2009]变换序列
    BZOJ3261 最大异或和
    [SHOI2011]双倍回文
    [TopCoder14647]HiddenRabbits
    [HDU5709]Claris Loves Painting
    [BZOJ4559][JLOI2016]成绩比较
    [CF995F]Cowmpany Cowmpensation
    [TopCoder11557]MatrixPower
    [UOJ198][CTSC2016]时空旅行
  • 原文地址:https://www.cnblogs.com/mrclr/p/8325714.html
Copyright © 2011-2022 走看看