假设:
变量a的取值范围为1到6,步长为1
变量b的取值范围为2到5,步长为1
变量c的取值范围为3到7,步长为1
.
.
.
变量n的取值范围为5到9,步长为1有多少个变量是不确定的。求a.ToString()+b.ToString()+c.ToString()+...+n.ToString()的所有排列方式。各位高手如用C#实现有什么好方法吗?
变量a的取值范围为1到6,步长为1
变量b的取值范围为2到5,步长为1
变量c的取值范围为3到7,步长为1
.
.
.
变量n的取值范围为5到9,步长为1有多少个变量是不确定的。求a.ToString()+b.ToString()+c.ToString()+...+n.ToString()的所有排列方式。各位高手如用C#实现有什么好方法吗?
解决方案 »
- 关于利用WebRequest向一个网站发送数据,网站用QueryString接收不到参数的问题,高手请进,急????????????????????
- 请教关于DockPanel 控件问题。
- 用c#把OFFICE文件转换成XML文件
- 限时启动进程问题
- 多线程问题,敬请指教!
- 问问题:退出清空session后,点IE上的那个后退仍然可以退回。
- 菜鸟想问如何知道我的sql语句获得了多少条数据??请进来看看??
- devexpress中barMdiChildrenListItem或者barLinkContainerItem如何添加子项
- 多线程问题。新手求教
- 异步调用问题
- c#对数据库进行添加删除更新的代码
- 直接用Visual Studio2010打开.sln解决方案文件时VS界面无显示
static void Main()
{
Permutation(Enumerable.Range(1, 6), new[] { 2, 3, 4, 5 }, Enumerable.Range(3, 5));
}public static void Permutation(params IEnumerable<int>[] ranges)
{
Permutation(new Stack<int>(), ranges);
}
private static void Permutation(Stack<int> stack, IEnumerable<int>[] ranges)
{
int left = ranges.Length - stack.Count;
if (left == 0)
{
Console.WriteLine(string.Join(",", stack.Select(i => i.ToString()).ToArray()));
}
else
{
foreach(int i in ranges[left - 1])
{
stack.Push(i);
Permutation(stack, ranges);
stack.Pop();
}
}
}
调用Permutation方法,你这里是三个变量传进去,但如果这个变量数并不确定有多少个呢,变量的定义在我说的Hashtable里又该怎么调用Permutation方法呢?