栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

校门外的树

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

校门外的树

某校大门外长度为 L的马路上有一排树,每两棵相邻的树之间的间隔都是 1 米。我们可以把马路看成一个数轴,马路的一端在数轴 0 的位置,另一端在 L的位置;数轴上的每个整数点,即 0,1,2,3,4…L都种有一棵树。

由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。

先说一下做题的思路。
这道题是要算出挖了之后剩余的树的个数,所以先开一个数组表示符合这道题的最大数组也就是一万,因为是0到10000所以数组应写为10001。利用数组的特性,如果未初始化系统会自动初始化为0,那就初始化一个为0则剩余部分自动初始为0了,这样就是一个天然的计数器了,将挖了的地方赋值为1,然后最后循环一次有多少个0就是有多少个树。这是思路,具体代码如下。
#include< iostream>
using namespace std;
int main()
{
int top,num,tempa,tempb,sum=0;
//top为路长,num为挖树区域数目,tempa为挖树一端开头,tempb为结尾,sum为计数器
int tree[10001]={0};//开数组为10001表示0到10000
cin>>top>>num;
for(int i=1;i<=num;i++) //循环几次区域长度次数
{
cin>>tempa>>tempb; //输入区域开头结尾
for(int j=tempa;j<=tempb;j++)
{
tress[j]=1; //将区域内的赋值为1
}
}
for( i=0;i<=top;i++) //循环判断输入路上数组上依旧为0的数,而不是循环整个数组
{
if(tress[i]==0) sum++; //是0计数器加1
}
cout< return 0; //好习惯
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/605183.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号