目录
原题链接 P1046 [NOIP 2005 普及组] 陶陶摘苹果
题目
题目描述
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 10 10 个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个 30 30 30 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知 10 10 10 个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。
输入格式
输入包括两行数据。第一行包含 10 10 10 个 100 100 100 到 200 200 200 之间(包括 100 100 100 和 200 200 200)的整数(以厘米为单位)分别表示 10 10 10 个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个 100 100 100 到 120 120 120 之间(包含 100 100 100 和 120 120 120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
输出格式
输出包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。
输入输出样例 #1
输入 #1
100 200 150 140 129 134 167 198 200 111
110
输出 #1
5
说明/提示
【题目来源】
NOIP 2005 普及组第一题
思路
我们使用数组arr来存储每一个苹果的高度:
int n, cnt = 0, arr[10];
for(int i = 0; i < 10; i++)
cin >> arr[i];
已知陶陶把手伸直的时候能够达到的最大高度 n n n 和板凳高度 30,则陶陶实际能摘到的最高的苹果高度为 ( n + 30 ) (n+30) (n+30),因此只需要对比 ( n + 30 ) (n+30) (n+30)和 当前苹果的高度,如果前者大于后者,说明可以摘到,此时将计数器 cnt 增加1:
cin >> n;
for(int i = 0; i < 10; i++)
{
if(30 + n >= arr[i])
cnt++;
}
最后输出计数器的值:
cout << cnt;
完整代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n, cnt = 0, arr[10];
for(int i = 0; i < 10; i++)
cin >> arr[i];
cin >> n;
for(int i = 0; i < 10; i++)
{
if(30 + n >= arr[i])
cnt++;
}
cout << cnt;
return 0;
}
840

被折叠的 条评论
为什么被折叠?



