如何处理一组复杂的嵌套 for 循环 vb.net
How to handle a complex set of nested for loops vb.net
所以我正在努力思考我想写的东西。嵌套 for-next 循环显然是唯一的方法(据我所知),但我无法得到任何类型的伪代码。我的问题是,给定一个固定数字(为简单起见,假设为 100),我想遍历所有数字集的所有组合,最多为 5,总计为 100。假设以 5 为步长。所以要明确一点,我想 运行 下面先举几个例子:
100
95 - 5
90 - 10
---
10 - 90
5 - 95
90 - 5 - 5
85 - 5 - 10
80 - 5 - 15
---
5 - 5 - 85
85 - 10 - 5
80 - 10 - 10
75 - 10 - 15
---
---
80 - 5 - 5 - 5 - 5
75 - 5 - 5 - 5 - 10
---
希望能让您了解我的目标是什么。我的问题是我无法找到一种有效的编程方式。我在实际编写代码(通常)方面非常有能力,但每次我坐下来这样做时,我都会得到 10 个嵌套的 for-next 循环,这些循环根本不起作用!
要消除嵌套问题,有一个简单的方法:使用 queue or a stack.
这是一些伪代码:
// add 1 item to start with in the queue
while(queue.Count > 0)
{
// 1. dequeue item from queue
// 2. do your work on it
// 3. if there's another combination emerging from step 2, enqueue it in the queue
}
// 4. this point will be reached once finished
使用自定义类型来存储该工作所需的任何信息,并使用一个循环而不是多个循环应该可以帮助您相对快速地解决问题 :D
所以我正在努力思考我想写的东西。嵌套 for-next 循环显然是唯一的方法(据我所知),但我无法得到任何类型的伪代码。我的问题是,给定一个固定数字(为简单起见,假设为 100),我想遍历所有数字集的所有组合,最多为 5,总计为 100。假设以 5 为步长。所以要明确一点,我想 运行 下面先举几个例子:
100
95 - 5
90 - 10
---
10 - 90
5 - 95
90 - 5 - 5
85 - 5 - 10
80 - 5 - 15
---
5 - 5 - 85
85 - 10 - 5
80 - 10 - 10
75 - 10 - 15
---
---
80 - 5 - 5 - 5 - 5
75 - 5 - 5 - 5 - 10
---
希望能让您了解我的目标是什么。我的问题是我无法找到一种有效的编程方式。我在实际编写代码(通常)方面非常有能力,但每次我坐下来这样做时,我都会得到 10 个嵌套的 for-next 循环,这些循环根本不起作用!
要消除嵌套问题,有一个简单的方法:使用 queue or a stack.
这是一些伪代码:
// add 1 item to start with in the queue
while(queue.Count > 0)
{
// 1. dequeue item from queue
// 2. do your work on it
// 3. if there's another combination emerging from step 2, enqueue it in the queue
}
// 4. this point will be reached once finished
使用自定义类型来存储该工作所需的任何信息,并使用一个循环而不是多个循环应该可以帮助您相对快速地解决问题 :D