一道c#题
用1,2,3,4,5,6这6个数字,实现打印出所有不同的排列,如“236541”等请高手讲一下思路万分感谢呀...
用1,2,3,4,5,6这6个数字,实现打印出所有不同的排列,如“236541”等
请高手讲一下思路 万分感谢呀 展开
请高手讲一下思路 万分感谢呀 展开
12个回答
展开全部
可以考虑蛮力法。5个for循环嵌套即可。当然数要是多的话,这个方法不可行。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用递归的方法实现全排列
private void button2_Click(object sender, EventArgs e)
{
string[] a = { "A", "B", "C", "D", "E", "F" };
temp(a, 0, 6);
}
private void temp(string [] b,int start,int end)
{
int i, j;
if (start == end)
{
for (j = 0; j < end; j++)
{
strValue += b[j];
}
richTextBox1.Text += strValue + "\n";
strValue = "";
}
else
{
for (i = start; i < end;i++ )
{
temp_ex(b,start,i);
temp(b,start+1,end);
temp_ex(b, start, i);
}
}
}
private void temp_ex(string [] c,int st,int ii)
{
string tt = c[st];
c[st] = c[ii];
c[ii] = tt;
}
private void button2_Click(object sender, EventArgs e)
{
string[] a = { "A", "B", "C", "D", "E", "F" };
temp(a, 0, 6);
}
private void temp(string [] b,int start,int end)
{
int i, j;
if (start == end)
{
for (j = 0; j < end; j++)
{
strValue += b[j];
}
richTextBox1.Text += strValue + "\n";
strValue = "";
}
else
{
for (i = start; i < end;i++ )
{
temp_ex(b,start,i);
temp(b,start+1,end);
temp_ex(b, start, i);
}
}
}
private void temp_ex(string [] c,int st,int ii)
{
string tt = c[st];
c[st] = c[ii];
c[ii] = tt;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string1=string2=...string6=""
for(int i=1; i<=6; i++)
{
string1=i.tostring();
for(int j=1; j<=6; i++)
{
string2=string1+j.tostring();
共计套用6层,最里头一层write
}
}
for(int i=1; i<=6; i++)
{
string1=i.tostring();
for(int j=1; j<=6; i++)
{
string2=string1+j.tostring();
共计套用6层,最里头一层write
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单的用两个数组实现
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最简单的思路就是6层嵌套循环呀
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好像是六个随机数字的数组。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询