题目链接:【洛谷】P1046 陶陶摘苹果
·题目
题目描述:
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出1010个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。
输入输出格式:
输入格式:
输入包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个100到200之间(包含100和200)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
输出格式:
输出包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。
输入输出样例:
输入样例:
100 200 150 140 129 134 167 198 200 111 110
输出样例:
5
·前言
陶陶摘苹果 NOIP2015普及组第一题
非常简单的语法训练题,适合初学循环or数组的小童鞋来练习,没有过多的解释。
·分析
这道题的数据严格限制了一共有10个苹果,那么就可以想到作法:
通过数组储存这十个苹果的高度,再枚举一个数组中每一个的点,进行判断,最后输出ans即可。
PS:这时判断的过程可以单独使用一个 int judge(int x) 函数,可以练习函数基本功 QWQ
·代码
数组:
#include <iostream> #include <algorithm> #include <cstdio> using namespace std; int main() { int a[15],high,ans=0; // 此处数组要开11个以上,以便于我们可以从1进行循环搜索 for(int i=1;i<=10;i++) cin>>a[i]; // 读入十个高度,存到a[]数组内 cin>>high; //输入陶陶伸直手臂能到达的最大高度; high+=30; // 因为陶陶可以使用30cm高的板凳,那么也就是说他能够到的最大高度可以+30 for(int i=1;i<=10;i++) { if(a[i]<=high) ans++; } cout<<ans<<endl; return 0; }
结果:
数组+函数:
#include <iostream> #include <cstdio> #include <algorithm> using namespace std; int a[15],high,ans; //如果使用函数需要定义全局变量,同时因为全局变量所以ans自动设置为0 int judge(int x) //通过函数判断是否可以摘到 { if(x<=high) return 1; return 0; } int main() { for(int i=1;i<=10;i++) cin>>a[i]; cin>>high; high+=30; for(int i=1;i<=10;i++) { if(judge(a[i])) ans++; //如果judge函数返回为真,则累加ans } cout<<ans<<endl; return 0; }
结果:
·OVER
祝愿大家在Coding的路上越走越远。
——LittleSeven【QQ3364445435】