zoukankan      html  css  js  c++  java
  • FZU 2095 水面高度

     Problem 2095 水面高度

    Accept: 40    Submit: 256
    Time Limit: 1000 mSec    Memory Limit : 32768 KB

     Problem Description

    kk手上有个长方体,三边长AC,AB,AD分别为a,b,c,现在里面的水高度为d(0<=d<=c)。现在kk将长方体沿AB边翻转,当C点的高度为x(0<=x<a)时,求水面高度。

     Input

    第一行一个整数T,表示有T(1<=T<=1000)组数据。

    每组数据输入五个整数:a b c d x (10<=a,b,c<=100)。

     Output

    每组数据输出一行,表示水面高度,结果保留两位小数。

     Sample Input

    215 10 20 10 1283 33 26 18 7

     Sample Output


    几何题
    #include <iostream>
    #include <algorithm>
    #include <string.h>
    #include <stdlib.h>
    #include <math.h>
    #include <stdio.h>
    
    double a,b,c,d,x;
    double ans;
    int main()
    {
    	int t;
    	scanf("%d",&t);
    	while(t--)
    	{
    	scanf("%lf%lf%lf%lf%lf",&a,&b,&c,&d,&x);
        if(x==0)
    	{
    		printf("%.2f
    ",d);
    	    continue;
    	}
    	double s=a*d;
    	double angle=asin(x/a);
      double sinx=sin(angle);
      double cosx=cos(angle);
    	//double cosx=sqrt(1-sinx*sinx);
    
    	double x2=c*cosx;
        double h2=x+x2;
    	double l;
    	double s1;
    	
    	if(x<x2)
    	{
          l=a/cosx;
    	  s1=l*x*0.5;
    	  //h2=cosx*c+x;
    	}
    	else if(x>=x2)
    	{
    		l=c/sinx;
    		s1=l*x2*0.5;
    		x=x2;
    		//h2=sinx*a+x;
    	}
        if(s<=s1)
    	{
            double num=s/s1;
    		double k=sqrt(num);
    		ans=k*x;
    	}
    	else if(s>s1&&s<=(a*c-s1))
    	{
    		double s2=s-s1;
    		double h=s2/l;
    		ans=h+x;
    	}
    	else
    	{
           //double s2=a*c-s1;
    	   //double s3=s-s2;
    	   double s4=a*c-s;
    	   double num=s4/s1;
    	   double k=sqrt(num);
    	   double h=k*x;
    	   ans=h2-h;
    
    	}
    	
    	printf("%.2f
    ",ans);
    	}
    	return 0;
    
    }
    


  • 相关阅读:
    结对编程--黄金分割点游戏
    第一次单元测试,小紧张呢!
    Visual studio 2013 安装的漫长过程
    课后练习题:读程序
    进度条
    “啰嗦”的四则运算
    我与git“美妙”的一天
    结对编程(黄金分割点)
    Visual Studio 2015的安装和简单的测试
    软件工程学习体会
  • 原文地址:https://www.cnblogs.com/dacc123/p/8228655.html
Copyright © 2011-2022 走看看