top1编程
← 返回题目
题解

【入门】陶陶摘苹果

1 条题解

  • 0
    @ 2026-7-31 20:44:50

    解题思路

    树上有 10 个苹果,陶陶可以踩一个 30 厘米高的板凳。给出每个苹果的高度和陶陶伸直手能达到的高度,算一算能摘到几个苹果。

    思路:先算能摸到的最高高度,再逐个比较。

    1. 陶陶能摸到的最高高度 = 手伸到的高度 + 30(板凳的高度)
    2. 把 10 个苹果的高度挨个和这个高度比较
    3. 只要苹果的高度不超过能摸到的高度,就能摘到,数量加 1
    4. 输出总数

    为什么是加上 30? 陶陶够不着的时候可以踩上板凳,所以手能到达的最大高度就是伸直高度加上板凳高度。

    举例:样例里陶陶手伸到 110 厘米,加上板凳能摸到 140。10 个苹果里高度不超过 140 的有 100、140、129、134、111 这 5 个,所以答案是 5。

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        int a[10];  // 10 个苹果到地面的高度
        for (int i = 0; i < 10; i++) {
            cin >> a[i];
        }
        int h;  // 陶陶把手伸直时能达到的最大高度
        cin >> h;
    
        int reach = h + 30;  // 踩上 30 厘米的板凳后能摸到的高度
        int cnt = 0;         // 记录能摘到的苹果数
        for (int i = 0; i < 10; i++) {
            // 苹果高度不超过能摸到的高度,就能摘到
            if (a[i] <= reach) {
                cnt++;
            }
        }
        cout << cnt;  // 输出能摘到的苹果数目
        return 0;
    }
    

    复杂度分析

    • 时间复杂度:O(1),固定 10 个苹果,只循环一次
    • 空间复杂度:O(1),只用了固定大小的数组和几个变量
    • 1