前言
本站一般是周一先将题目放上来供大家思考,周四、五会把后面的放上来
作者:xyzlh
今天讲的是一道比较有名的题:淘淘摘苹果 (洛谷P1046),这个也还是比较简单的
题目链接:洛谷
题目
首先我们来看一下题目描述:
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个 30 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知 10 个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。
输入格式:
输入包括两行数据。第一行包含 10 个 100 到 200 之间(包括 100 和 200 )的整数 (以厘米为单位)分别表示 10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。 第二行只包括一个 100 到 120 之间(包含 100 和 120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
输出格式:
输出包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。
输入输出样例
输入 #1
100 200 150 140 129 134 167 198 200 111
110
输出 #1
5
说明/提示
NOIP2005 普及组第一题
思路分析
其实这道题还是有点水的,打个暴力就可以过去了
假设淘淘能够到的最大高度是x,那么如果 x+30>=苹果的高度 就可以摘下来,
否则就无法摘下来。在判断的同时统计一下数目即可。
AC代码
c语言
#include <stdio.h>//头文件
int main(){
int a[10],i,sum=0,n;//a为苹果高度,i是循环变量,sum用来计数,n是淘淘能够到的最大高度
for(i=0;i<10;i++)scanf("%d",&a[i]);//输入苹果高度
scanf("%d",&n);//输入能够到的最大高度
for(i=0;i<10;i++){
if(a[i]<n+30)sum++;//判断+统计数量
}
printf("%d",sum);//输出
}
c++
#include <bits/stdc++.h>
int main(){
int a[10],i,sum=0,n;
for(i=0;i<10;i++)cin>>a[i];
cin>>n;
for(i=0;i<10;i++){
if(a[i]<=n+30)sum++;
}
cout<<sum;
}
建议最好是根据思路自己写一下代码,切忌直接copy,也可以理解完代码后自己写一遍。
如果您有更好的思路或者其他语言的代码,欢迎您在评论区中提出😁
这期到这里就结束了,我们下期再见!😊
本文链接: 2.淘淘摘苹果