一道c#题

用1,2,3,4,5,6这6个数字,实现打印出所有不同的排列,如“236541”等请高手讲一下思路万分感谢呀... 用1,2,3,4,5,6这6个数字,实现打印出所有不同的排列,如“236541”等
请高手讲一下思路 万分感谢呀
展开
 我来答
stydfans
2012-07-30 · TA获得超过668个赞
知道小有建树答主
回答量:1263
采纳率:100%
帮助的人:500万
展开全部
如果是数字的个数确定,有这么一个思路:
1.设置一个数组1,用于存储这些输入的6个数字
2.使用随机类Radom 随机生成0-5中的一个数字,然后输出这个数字,然后与数组1的元素进行比较,找到这个随机元素的位置,然后设置数组2,用于存储没有被选的5个数字,
3.继续使用Radom类,随机生成0-4中的一个数字,方法同第二步一样,直到数组5,只有2个元素的时候,继续随机输出一个数,然后将另一个数同时输出即可。
圈一圈
2012-07-29 · TA获得超过1164个赞
知道小有建树答主
回答量:932
采纳率:100%
帮助的人:1010万
展开全部
可以考虑蛮力法。5个for循环嵌套即可。当然数要是多的话,这个方法不可行。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
somezy
2012-07-29
知道答主
回答量:32
采纳率:0%
帮助的人:14.3万
展开全部
用递归的方法实现全排列
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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sin7a
2012-07-30
知道答主
回答量:13
采纳率:0%
帮助的人:6.9万
展开全部
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
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a六公子
2012-07-29 · TA获得超过1952个赞
知道小有建树答主
回答量:852
采纳率:33%
帮助的人:241万
展开全部
简单的用两个数组实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
行走在繁星下
2012-07-30 · TA获得超过189个赞
知道小有建树答主
回答量:210
采纳率:0%
帮助的人:129万
展开全部
最简单的思路就是6层嵌套循环呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dongdongmian09
2012-07-30
知道答主
回答量:86
采纳率:0%
帮助的人:18.1万
展开全部
好像是六个随机数字的数组。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(10)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式