小韦老师@NOIP 普及组-2005-陶陶摘苹果
题目:
描述
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个 30 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知 10 个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。
输入
包括两行数据。第一行包含 10 个 100 到 200 之间(包括 100 和 200)的整数(以厘米为单位)分别表示 10 个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个 100 到 120 之间(包含 100 和 120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
输出
包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。
输入样例
100 200 150 140 129 134 167 198 200 111
110
输出样例
5
题解:
破题:
有 10 个数(10 个苹果),还有另一个数 high (陶陶把手伸直的时候能够达到的最大高度),求 high 加上 30 跟给出的那 10 个数相比,大于其中的几个数。
思路:
整体思路:
用数组存储给出的 10 个数,需要定义一个计数器,枚举数组的每一个数,若 high + 30 大于当前枚举的数,则计数器加 1。
具体步骤:
1.定义数组,并输入数组。
2.定义 high 和计数器,且将 high 输入。
3.枚举数组的每一个元素,若 high + 30 大于当前枚举的元素,则计数器加 1。
4.输出计数器。
完整代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
int a[15];
for (int i = 0; i < 10; i++) {
cin >> a[i];
}
int high; // 陶陶把手伸直的时候能够达到的最大高度
int count = 0; // 计数器
cin >> high;
for (int i = 0; i < 10; i++) {
// 这里记得要加上 30
if (high + 30 >= a[i]) count++;
}
cout << count;
return 0;
}