题解
【入门】求最大梯形的面积
1 条题解
-
0
解题思路
题目要求找出 n 个梯形里面积最大的那个,输出它的面积。
思路:
- 逐个读入每个梯形的上底 a、下底 b、高 h
- 用公式算面积:S = (a + b) × h ÷ 2
- 和当前最大值比较,大的就更新
- 全部算完后输出最大值,保留 1 位小数
为什么用打擂台? 一个一个比较,遇到更大的就换,最后剩下的就是最大值。
举例:三个梯形
- (1,2,3):面积 (1+2)×3÷2 = 4.5
- (3,4,5):面积 (3+4)×5÷2 = 17.5
- (2,3,4):面积 (2+3)×4÷2 = 10
- 最大是 17.5
参考代码
#include <iostream> #include <iomanip> using namespace std; int main() { int n; cin >> n; double mx = 0; for (int i = 0; i < n; i++) { double a, b, h; cin >> a >> b >> h; double s = (a + b) * h / 2; // 梯形面积 if (s > mx) mx = s; } cout << fixed << setprecision(1) << mx; return 0; }复杂度分析
- 时间复杂度:O(N),逐个算面积
- 空间复杂度:O(1)
- 1