int[] a={1,2,3,4,5}
for(int i1=0;i1<a.count;i1++)
{
for(int i2=i1+1;i2<a.count-1;i2++)
{
for(int i3=i2+1;i3<a.count-2;i3++)
{
console.write(a[i1]*100+a[i2]*10+a[i3]);
}
}
}
for(int i1=0;i1<a.count;i1++)
{
for(int i2=i1+1;i2<a.count-1;i2++)
{
for(int i3=i2+1;i3<a.count-2;i3++)
{
console.write(a[i1]*100+a[i2]*10+a[i3]);
}
}
}
解决方案 »
- action提交
- 如何不关闭模式对话框
- Winform关于跨线程问题变量.请以代码见真章.
- 如何用数据库脚本来更改数据库名称
- 急!!WebService 调用exe应用程序?(只要答案正确,马上给100分)
- 关于三维坐标换算成二维坐标的问题
- 关于水晶报表(Crystal Reports)使用ado.net数据集的若干问题(高手请进)
- Stream如何保存成为文件?通过webRequest获得流,但是不知道如何保存为物理文件啊!
- 求一份各种关键字含义的帖子
- 谁有asp.net C# 读写excel的实例?
- 如textbox,readonly设置成true,那么在代码中clear()就无用了?
- C# Winfrom 关PDF文件的问题
int[] a={1,2,3,4,5}
for(int i1=0;i1 <a.count;i1++)
{
for(int i2=i1+1;i2 <a.count-1;i2++)
{
for(int i3=i2+1;i3 <a.count-2;i3++)
{
console.write(a[i1]*100+a[i2]*10+a[i3]);
}
}
}
{
int[] a = new int[]{ 1,2,3,4,5};
List<int> t = GetArray(a);
foreach (int i in t)
{
Console.Write(i.ToString());
Console.Write(" ");
}
Console.ReadLine();
} public static List<int> GetArray(int[] a)
{
int length = a.Length;
int x, y, z = 0;
List<int> list = new List<int>();
for (int j = 0; j < length; j++)
{
for (int k = j+1; k < length; k++)
{
for (int i = k + 1; i < length; i++)
{
x = a[j];
y = a[k];
z = a[i];
string temp = x.ToString() + y.ToString() + z.ToString();
int num = Convert.ToInt32(temp);
if (!list.Contains(num))
{
list.Add(num);
}
}
}
}
return list;
}
结束就是134,依此类推,1移动完了
接着就是234,移动直到5
表述的不是太清楚,自己在想想。不用是递归
但是还欠缺一点。现在是取3个数组合,如果是更多呢?能不能做的更通用一点。
也就是数组,跟组合的数量,都以变量的方式传进来。。
using System;
class Queen
{
const int SIZE = 8;//皇后数
public static void Main()
{
int[] Queen = new int [SIZE];//每行皇后的位置
int y,x,i,j,d,t=0;
y = 0;
Queen[0] = -1;
while( true )
{
for (x=Queen[y]+1; x<SIZE; x++)
{
for (i=0;i<y;i++)
{
j = Queen[i];
d = y-i;
//检查新皇后是否与以前的皇后能相互攻击
if ((j==x)||(j==x-d)||(j==x+d))
break;
}
if (i>=y)
break;//不攻击
}
if (x == SIZE) //没有合适的位置
{
if (0==y)
{
//回朔到了第一行
Console.WriteLine("Done");
break; //结束
}
//回朔
Queen[y]=-1;
y--;
}
else
{
Queen[y]=x;//确定皇后的位置
y++;//下一个皇后
if (y<SIZE)
Queen[y]=-1;
else
{
//所有的皇后都排完了,输出
Console.WriteLine("\n" + ++t +':');
for(i=0;i<SIZE;i++)
{
for (j=0;j<SIZE;j++)
{
if(Queen[i] == j)
Console.Write('Q');
else
Console.Write('.');
}
Console.WriteLine();
}
y = SIZE -1;//回朔
}
}
}
}
}