【发布时间】:2011-03-31 06:47:30
【问题描述】:
我想编写一个遍历列表的函数,但如果它们等于一个目标,则需要两个元素。
逻辑可能是有两个循环;首先遍历列表并查看是否有任何元素 + 第一个 = 目标,然后是第二个,然后是第三个 等等。
int i;
int max = list.size;
for(i=0; i<=max; i++)
{
if()
}
在 C++ 中
int i;
int max = resistors.size();
int curr;
for(curr = 0; curr<=resistors.size(); curr++)
{
for(i=1; i<=max; i++)
{
if((resistors[curr]+resistors[i])==target){
ComposeSerial(resistors[curr], resistors[i]);
}
}
}
我相信缺少一件事以确保它再次通过?
【问题讨论】:
-
如果是作业,给它加个标签。
-
那是
std::list<int>吗?排序了吗? -
传入列表,在这种情况下我称之为列表
-
你将不得不做很多循环来让这个算法工作。从索引 0 开始并尝试将列表中的所有其他元素添加到它以获取目标,然后移至 1 并尝试在其后添加所有其他元素以获取目标,然后移至索引 2 并尝试添加所有其他元素之后获得目标等。你真的需要这样做吗?你能说出原来的问题吗?因此,您将有一个外部循环,内部还有另一个循环。
-
@user570098 :您的变量被命名为
list的事实并没有告诉我们它是什么类型的任何信息,所以我不知道您如何获得任何合理的答案。就此而言,我仍然不明白你的问题是什么。