问题分析
本题的核心是计算一个矩形容器在装有特定体积的液体时,能倾斜的最大角度,同时确保液体不会溢出。为了实现这一目标,我们需要理解几何特性,并基于三角函数进行计算。
#### 基本条件
$$
S_{\text{base}} = 25 \times 25 = 625~\mathrm{cm}^2
$$
$$
V_{\text{total}} = 625 \times 33 = 20625~\mathrm{cm}^3
$$
dash 将容器沿着底面的一条边缓慢倾斜,我们的目标是计算最大倾斜角,即使得液体刚好到达容器边界但不溢出的最大角度。
解法思路
当容器倾斜时,液体表面可能形成两种不同的几何形状:
判断依据:
假设不倾斜时液体的高度为:
$$
h = \frac{V}{S_{\text{base}}} = \frac{2025}{625} = 3.24~\mathrm{cm}
$$
数学推导
#### 1. 三角形情况
当液体表面是三角形时,倾斜角度 $\theta$ 满足:
$$
\tan \theta = \frac{\text{底边}}{\text{高}}
$$
其中:
因此:
$$
\theta = 90^\circ - \tan^{-1} \left( \frac{b}{H} \right)
$$
#### 2. 梯形情况
如果液体高度更大,它会形成梯形。倾斜时,我们可以用另一种计算方法*:
$$
\theta = 90^\circ - \tan^{-1} \left( \frac{\text{容器宽度}}{\text{新液面高度}} \right)
$$
其中新液面高度可以从几何关系推导出来。
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
const double PI = acos(-1);
double a, b, x;
cin >> a >> b >> x;
x /= a; // 计算液体的面积
double st = x * 2 / a - b; // 计算梯形的上底
if (st > 0) { // 液体形成梯形
cout << fixed << setprecision(3) << 90.0 - atan(a / (b - st)) * 180.0 / PI;
} else { // 液体形成三角形
a = 2 * x / b;
cout << fixed << setprecision(3) << 90.0 - atan(a / b) * 180.0 / PI;
}
return 0;
}import java.util.Scanner;
public class TiltAngle {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double x = scanner.nextDouble();
scanner.close();
final double PI = Math.acos(-1);
x /= a; // 计算液体面积
double st = x * 2 / a - b; // 计算梯形上底
double angle;
if (st > 0) { // 液体表面为梯形
angle = 90.0 - Math.toDegrees(Math.atan(a / (b - st)));
} else { // 液体表面为三角形
a = 2 * x / b;
angle = 90.0 - Math.toDegrees(Math.atan(a / b));
}
System.out.printf("%.3f\n", angle);
}
}import math
def max_tilt_angle(a, b, x):
PI = math.acos(-1)
x /= a # 计算液体面积
st = x * 2 / a - b # 计算梯形的上底
if st > 0: # 液体形成梯形
angle = 90.0 - math.degrees(math.atan(a / (b - st)))
else: # 液体形成三角形
a = 2 * x / b
angle = 90.0 - math.degrees(math.atan(a / b))
return angle
# 读取输入
a, b, x = map(float, input().split())
print(f"{max_tilt_angle(a, b, x):.3f}")
0 回复
0 转发
0 喜欢
1 阅读



