我想问一个排列方面的问题,是这样的:假如有一个数组int[] temp={1,2,3,4,5,6,7},如果要用循环来排列成如下形式:123456,123457,123467,123567,134567,124567,234567.也就是彩票中的复式算法,请问要如何实现?数组temp是可变长的,算法应该适用变长的数组,不能用递归。谢谢了,在线等,很急
解决方案 »
- 【下载-指定ie下载而不弹出其他下载工具下载】
- 把DataSet保存在客户端
- gridview
- 提示 The non-generic type 'System.Collections.IList' cannot be used with type argu
- SQL查询当前时间内的“最新数据”(送分了)
- gridview做一个删除图片按钮,有删除提示功能的
- <%@ Register TagPrefix="cc1" Namespace="Ctnv.build.lib" %>
- 点击datagrid,我怎么取出点击单元格中的内容,急,高手回答
- Windows 窗体:MDI的问题
- “/”应用程序中的服务器错误。
- asp.net 问题:我用的是开源的作业调度框架 - Quartz.NET来做定时任务不执行
- asp.net 用treeview做菜单 点击节点打开新页面 当前页面不关闭
{
//int[] ary = { 1,2,3,4,5,6,7,8,9,10,11, 12, 13, 14, 15, 16, 17,18,19,20,21,22,23,24,25 };
int[] ary = { 1, 2, 3, 4, 5, 6, 7};
int count = 0;
string t = ""; for (int a = 0; a <= ary.Length-6; a++)
{
for (int b = a; b < ary.Length-5; b++)
{
for (int c = b; c < ary.Length-4; c++)
{
for (int d = c; d < ary.Length-3; d++)
{
for (int e = d; e < ary.Length-2; e++)
{
for (int f = e; f < ary.Length-1; f++)
{
bool bol = true;
int[] itemp = { ary[a], ary[b + 1], ary[c + 1], ary[d + 1], ary[e + 1], ary[f + 1] };
for (int z = 0; z < itemp.Length - 1; z++)
{
if (itemp[z] == itemp[z + 1])
{
bol = false;
break;
}
}
if (bol)
{
count++;
t = ary[a] + "," + ary[b + 1] + "," + ary[c + 1] + "," + ary[d + 1] + "," + ary[e + 1] + "," + ary[f + 1];
Console.WriteLine(t);
Console.WriteLine("");
}
}
}
}
}
}
}
Console.WriteLine("count="+count);
Console.Read();
}