很简单的算法,想实现一个大数算法
已知R是一个32位的数,求解X^2+Y^2=R^2,要求X和Y应尽量相等,最后求出的X和Y经过运算后等到的R与以前的R相差不超过1,请大家给出一点介意,完成成后另行给分

解决方案 »

  1.   

    X^2+y^2>=2X*Y, 既然要求X和Y应尽量相等,可以使用2*X*Y代替左边求解。
      

  2.   

    一点思路,仅供参考。
    你可以将上式化为(X+Y-R)(X+Y-R)=2XY
    那么X+Y可以设为一个变量,因为要两个数尽量相等,那么可以将X=Y  或 X=Y+1之类的。
    通过穷举得到等式成立的条件。
      

  3.   

    有没有搞错,当R位32位数的时候,R^2可能溢出用MFC的数据类型无法进行,希望找一个支持64位以上的运算包
      

  4.   

    R是32位数是什么意思?是32 bits还是32 digits?
    如果x,y,r都是整数的话,这些要求不可能满足,除非x=0或y=0。如果是浮点数,直接解方程2*x^2=r^2就可以了。