用简单的C++语言实现某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,…,L都种有一棵树。
时间: 2024-10-29 09:25:05 浏览: 37
在C++中,你可以使用数组或向量来表示这排树,因为它们可以方便地存储连续的数据。假设我们创建一个`std::vector<int>`,其中索引表示树在数轴上的位置,值表示该位置是否种植了树(例如,1代表有树,0代表无树)。下面是一个简单的实现示例:
```cpp
#include <iostream>
#include <vector>
// 定义马路长度
const int MAX_LENGTH = 100; // 可根据实际情况调整
class RoadWithTrees {
private:
std::vector<bool> trees; // 存储树的信息,true表示有树,false表示无树
public:
// 构造函数,设置马路两端都有树
RoadWithTrees(int length) : trees(MAX_LENGTH, true), trees[0] = trees[MAX_LENGTH - 1] = false {
if (length > 0) {
this->trees[length - 1] = false; // 马路终端无需种树
}
}
// 获取第i个位置是否有树
bool isTreeAtPosition(int position) const {
if (position >= 0 && position < MAX_LENGTH) {
return trees[position];
}
return false;
}
};
int main() {
int L; // 马路实际长度
std::cout << "请输入马路长度(L): ";
std::cin >> L;
RoadWithTrees road(L);
for (int i = 0; i <= L; ++i) {
if (road.isTreeAtPosition(i)) {
std::cout << "第" << i << "位置有树。\n";
} else {
std::cout << "第" << i << "位置无树。\n";
}
}
return 0;
}
```
在这个例子中,用户输入马路的长度`L`,程序会输出从0到`L`的所有位置上是否有树。注意这个代码假定马路长度`L`不超过预设的最大长度`MAX_LENGTH`。
阅读全文