题目描述
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个 30 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知 10 个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。
输入格式
输入包括两行数据。第一行包含 10 个 100 到 200 之间(包括 100 和 200 )的整数(以厘米为单位)分别表示 10 个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个 100 到 120 之间(包含 100 和 120 )的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
输出格式
输出包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。
输入输出样例
输入 #1 输出 #1
100 200 150 140 129 134 167 198 200 111 5
110
说明/提示
[题目来源]
NOIP 2005 普及组第一题
解题过程
先输入两行正整数,第一行为10个苹果与地面之间的高度,第二行为陶陶自己的身高,定义两个变量,一个为整型一维数组(苹果的高度)apple[10],另一个为一个整型变量(陶陶的身高)height;
int apple[10], height //10个苹果距离地面的高度, 陶陶的身高
然后输入 10 苹果的高度,与陶陶的身高;
for(int i = 0; i < 10; i++)
{
cin >> apple[i];
}
cin >> height;
又从题目可知,陶陶还可以使用高为 30 厘米的板凳,所以陶陶最终的高度为height += 30(height += 30 相当于 height = height + 30);
height += 30; // height += 30, 相当于height = height + 30
接着,只用判断苹果的高度是否小于或等于
陶陶加椅子的高度(为何苹果的高度等于陶陶加椅子的高度也可以,因为题中say说“假设她碰到苹果,苹果就会掉下来。”),若苹果的高度小于或等于陶陶加椅子的高度,就让统计可摘苹果的数量加1;
for(int i = 0; i < 10; i++)
{
if(apple[i] <= height)
{
ans++;
}
}
最后,输出可摘苹果的数量。
cout << ans;
最后,展示最后的AC代码,如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int ans = 0, height, apple[10];
for(int i = 0; i < 10; i++)
{
cin >> apple[i];
}
cin >> height;
height += 30;
for(int i = 0; i < 10; i++)
{
if(apple[i] <= height)
{
ans++;
}
}
cout << ans;
return 0;
}
感谢 ,您的耐心阅读!
题目网址:
[NOIP2005 普及组] 陶陶摘苹果 - 洛谷https://www.luogu.com.cn/problem/P1046