zoukankan      html  css  js  c++  java
  • HDU3809_Decrypt coordinate_迭代法

    题目大意:       让你求解方程:             x1=x-sqrt(y);             y1=y-sqrt(x);         已知x1,y1,要求x与y,精确到小数点后6位。 解题思路;           迭代法,感谢阿侠,一语惊醒。。           式子是这样推的:                    x=x1+sqrt(y);                    y=y1+sqrt(x);             然后一开始把y=y1,x=x1赋值上去迭代,因为x>x1,y>y1;所以这样迭代上去,值会累加。可是为什么累加后值不会超过真实的x与y呢。。。因为x=x1+sqrt(y1+sqrt(x1));这里面y1+sqrt(x)本来就是小于真实的y的。所以这里迭代上去只能使值越来越靠近真实值,而不会出现迭代上去后,值超过真实值的情况。。 代码:
    #include
    #include
    #include
    #include
    using namespace std;
    int main(void)
    {
    	int cas,cas_c=1;
    	double x1,y1,x,y,sx,sy;
    	cin>>cas;
    	while(cas--)
    	{
    		cin>>x1>>y1;
    		sx=x1;
    		sy=y1;
    		do
    		{
    			y=y1;
    			x=x1;
    			x1=sx+sqrt(y);
    			y1=sy+sqrt(x);
    		}while(x1-x>0.00000001 || y1-y>0.00000001);
    		printf("Case %d: %.6lf %.6lf\n",cas_c,x1,y1);
    		cas_c++;
    	}
    	getchar();
    	return 0;
    }
    
     
  • 相关阅读:
    日报8.18
    Java web项目启动Tomcat报错
    eclipse导入项目报错问题解决方法
    软件架构实践阅读笔记3
    软件架构实践阅读笔记 2
    软件架构实践阅读笔记1
    架构漫谈阅读笔记3
    架构漫谈阅读笔记2
    架构漫谈阅读笔记1
    面向服务的架构SOA
  • 原文地址:https://www.cnblogs.com/cchun/p/2520186.html
Copyright © 2011-2022 走看看