美文网首页
2019.4.10胡凡算法笔记

2019.4.10胡凡算法笔记

作者: sure_风雨与晴 | 来源:发表于2019-04-10 23:17 被阅读0次

    1.N位数字与数组的转化

    将N位数字的每一位存储在数组中

    void to_array(int n, int num[])
        {
            for (int i = 0; i < N; i++)
            {
                num[i] = n % 10;
                n = n / 10;
            }
        }
    

    将数组中的数字组成N位数字

    int to_number(int num[])
        {
            int sum = 0;
            for (int i = 0; i < N; i++)
            {
                sum = sum*10 + num[i];
            }
            return sum;
        }
    

    2.最大公约数和最小公倍数

    求a,b的最大公约数gcd(a,b)常用辗转相除法

    gcd(a, b)=gcd(b, a%b)

    又0和任意一个整数的最大公约数都是a,则递归边界是gcd(a,0)=a。

    int gcd(int a, int b)
    {
        if (b == 0) return a;
        else return gcd(b, a % b);
    }
    

    最小公倍数lcm(a, b)求解是在最大公约数的基础上,当求得最大公约数d后,可以马上得到a和b的最小公倍数是ab/d,但是由于ab可能会溢出,因此更恰当的写法是a/bd。

    3.输入多组数据

    输入多组数据,每组两个

    while(scanf("%d%d", &m, &n) != EOF)
    {...}

    相关文章

      网友评论

          本文标题:2019.4.10胡凡算法笔记

          本文链接:https://www.haomeiwen.com/subject/zwjoiqtx.html