美文网首页
无标题文章

无标题文章

作者: yuLeaf | 来源:发表于2017-01-15 22:55 被阅读0次

    I - A Simple Math Problem(解题报告)

    HDU - 5974

           第一次写,一道比较简单的题,乍一看觉得非常简单,但暴力枚举后就会TLE,所以就需要另辟蹊径,仔细观察题,我们可以通过数学方法来简化。输入的两个数n,m,然后设结果a,b。设a,b的最大公约数为g,然后设g*k1 = a,g*k2=b,g*k1+g*k2=n,因为m=(a*b)/g,所以m=g*k1*k2.。由此可得出g也是m和n的最大公约数,所以g为已知量,所以可以列出方程g*k1^2-n*k1+m=0,所以转化成根的存在问题,但是要注意的是要考虑根要为整数。

    接下来是代码:


    #include#includeint gcd(int a,int b){int temp;if(aans2)

    {

    ans = ans1;

    ans1 = ans2;

    ans2 = ans;

    }

    if(ans2<=0)

    {

    flag = 1;

    }

    if(flag||ans1%2==1||ans2%2==1)

    {

    printf("No Solution\n");

    }

    else

    {

    printf("%d %d\n",ans1/2,ans2/2);

    }

    }

    return 0;

    }

    相关文章

      网友评论

          本文标题:无标题文章

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