top1编程
← 返回题目
题解

陶陶摘苹果

1 条题解

  • 0
    @ 2026-8-5 1:22:40

    解题思路

    陶陶把手伸直最高能够到 h 厘米。她还有一个 30 厘米高的小板凳,够不着的时候会踩上去,所以踩着板凳能碰到的最大高度是 h + 30。

    每个苹果只要满足“苹果离地高度 ≤ h + 30”,陶陶就能摘到它。

    做法:

    1. 读入 10 个苹果离地面的高度,存进数组;
    2. 读入陶陶手伸直能达到的最大高度 h,算出能碰到的高度 reach = h + 30;
    3. 一个一个检查 10 个苹果,数一数有多少个苹果高度 ≤ reach;
    4. 输出数量。

    比如样例: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