题解
陶陶摘苹果
1 条题解
-
0
解题思路
陶陶把手伸直最高能够到 h 厘米。她还有一个 30 厘米高的小板凳,够不着的时候会踩上去,所以踩着板凳能碰到的最大高度是 h + 30。
每个苹果只要满足“苹果离地高度 ≤ h + 30”,陶陶就能摘到它。
做法:
- 读入 10 个苹果离地面的高度,存进数组;
- 读入陶陶手伸直能达到的最大高度 h,算出能碰到的高度 reach = h + 30;
- 一个一个检查 10 个苹果,数一数有多少个苹果高度 ≤ reach;
- 输出数量。
比如样例:h = 110,reach = 140。高度为 100、140、129、134、111 的 5 个苹果都能摘到,答案是 5。
参考代码
// P4437 陶陶摘苹果:计算陶陶(身高+30cm板凳)能摘到几个苹果 #include <iostream> using namespace std; int main() { int apple[10]; // 10 个苹果离地面的高度 for (int i = 0; i < 10; i++) cin >> apple[i]; int h; // 陶陶把手伸直能达到的最大高度 cin >> h; int reach = h + 30; // 踩上 30cm 板凳后能碰到的高度 int cnt = 0; // 能摘到的苹果数量 for (int i = 0; i < 10; i++) { if (apple[i] <= reach) cnt++; // 够得着的苹果就能摘到 } cout << cnt << endl; // 输出能摘到的苹果数 return 0; }复杂度分析
- 一共只有 10 个苹果,每个检查一次,时间复杂度是 O(10),也就是常数时间。
- 只用了一个长度 10 的小数组,空间复杂度是 O(1)。
- 1