问题描述:
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出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
算法
(模拟,枚举) O ( n ) O(n) O(n);
思路:
1、读入苹果树的高度和陶陶把手伸直的时候能够达到的最大高度。
2、如果(30+height)>= 苹果树的高度 即满足要求 累加计数器res
3、输出res即可。
时间复杂度分析
对于每个苹果枚举一次,因此时间复杂度为 O ( n ) O(n) O(n),其中n是苹果的数量。
C++代码:
#include <iostream>
using namespace std;
const int N = 15;
int apple[N];
int height;
int main()
{
for (int i = 0; i < 10; i++) cin >> apple[i];
cin >> height;
int res = 0;
for(int i = 0; i < 10; i++)
if((height + 30) >= apple[i]) res ++;
cout << res << endl;
}