洛谷P1046 陶陶摘苹果


题目链接:【洛谷】P1046 陶陶摘苹果

·题目

题目描述:

  陶陶家的院子里有一棵苹果树,每到秋天树上就会结出1010个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。

  现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。

输入输出格式:

输入格式:

输入包括两行数据。第一行包含10100200之间(包括100200)的整数(以厘米为单位)分别表示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】

猜你喜欢

转载自www.cnblogs.com/littleseven777/p/10503488.html