标记元素C 阵列带嵌套循环
Flagging Elements C++ array w/ Nested loop
是否有一种方法可以使我可以在特定整数(如嵌套环内部的1和2)之间来形容一个元素中的元素,或者在特定的整数之间来回或来回。我很困扰我的作业。基本上,我有一个数组中有150个元素,一个邮递员正在通过2个倍数的打开盒子,然后倍数为3,如果他击中了一个已经打开的盒子,该盒子已经打开了2个,他将关闭它,然后他走了通过150个邮箱,倍数为4,依此类推,直到150,如果它已经打开,他将关闭一个盒子,并打开关闭的盒子,直到外循环命中150,所有数字都已使用
我尝试了布尔和if语句,只有一堆额外的计数器变量,而idk如何有效地执行此操作
我曾经工作过一次,但是代码太草率了,我只是抓挠它,因为它可能是错误的答案
一定要在我的课程中作弊,但我已经多次阅读了本章,并且已经进行了许多互联网搜索,但我迷路了。我不是在要求代码,我只想了解什么是数组中标记或标记元素的最佳方法
使用模量运算符: %
检查其余部分。
这是一个执行您描述的示例。
要切换布尔值,只需使用"非"布尔运算符。
#include <vector>
#include <iostream>
class boxes {
private:
std::vector<bool>open;
// visit boxes for a given step
void visit (size_t step)
{
for (size_t i = 0 ; i < open.size() ; i+= step)
{
open[i] = ! open[i]; // toggle open state
}
}
public:
// constructor
boxes (size_t size)
{
// all boxes initially closed
open.resize(size, false);
// visit boxes with all values
for (size_t i = 2 ; i != size ; i++)
{
visit (i);
}
}
// trace function
void trace (void)
{
for (int i = 0 ; i != open.size() ; i++)
{
std::cout << "box " << i << (open[i] ? " open" : " closed") << std::endl;
}
}
};
int main (void)
{
boxes sample (10);
sample.trace();
return 0;
}
输出:
box 0 closed
box 1 closed
box 2 open
box 3 open
box 4 closed
box 5 open
box 6 open
box 7 open
box 8 open
box 9 closed
相关文章:
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- 了解嵌套循环打印星号图案
- 无法掌握嵌套循环的写作技巧
- 在 c++ 中实现嵌套循环的更短方法吗?
- 从嵌套循环中的 std::list 中删除将返回访问冲突
- 毕达哥拉斯三重嵌套循环误解
- T(n) 表示嵌套循环
- 2 个嵌套循环的时间复杂度
- 嵌套循环背后的逻辑
- 使用 %s C++嵌套循环
- 嵌套循环和重复迭代器
- 如何在 c++ 下使用嵌套循环和正则表达式降低时间复杂度?
- C++在乘法图中放置随机值(嵌套循环)
- 如何使用 OpenMP 减少嵌套循环?
- 为什么使用 2 个嵌套循环 O(n^2) 复杂度来解决二和问题,当只改变循环计数器逻辑时运行得更快?
- 学习嵌套循环C++与示例混淆
- 如何在CUDA中嵌套循环
- std::vector上的嵌套循环
- 具有动态数组分配的OpenMP嵌套循环
- 标记元素C 阵列带嵌套循环