题意:有一个长方体的水杯,底面为一个边长为
一道很有趣的思考题,要分两种情况讨论。

对于第一种情况成立的条件是
对于第一种情况,我们可以把水在底面的长度算出来,为:
然后就可以得到弧度为:
对于第二种情况,我们把水在另一边的高的长度算出来,为:
同样得到弧度为:
最后对于每一个判断条件,把弧度换成角度,换算公式如下:
在计算机中,我们可以通过如下条件来得到
代码:
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
using namespace std;
double a,b,x;
double p1,ans1,p2,ans2,ans;
int main()
{
scanf("%lf%lf%lf",&a,&b,&x);
p1=x*2.0/a/a-b;
p2=x*2.0/a/b;
ans1=atan((b-p1)/a)*180.0/atan(1.0)/4.0;
ans2=atan(b/p2)*180.0/atan(1.0)/4.0;
if(2.0*x>=a*a*b)
ans=ans1;
else
ans=ans2;
printf("%lf",ans);
return 0;
}