用1、2、2、3、4、5这六个

来源:百度知道 编辑:UC知道 时间:2024/04/24 09:24:44
用1、2、2、3、4、5这六个数字,用c#写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。

这是我写的,你试试吧,写完了才知道我是用的C++,不好意思哦!相信是对的,我用java试过了
main()
{
int a[5]={0,1,2,3,4,5};
int i,j,k,l,m,n;
for(i=0;i<6;i++)
for(j=0;j<6;j++)
for(k=0;k<6;k++)
for(l=0;l<6;l++)
for(m=0;m<6;m++)
for(n=0;n<6;n++)
{
if((i!=3 && j==5 && k!=3 && l==5 && m!=3 && n==5)||
(i==3 && j!=5 && k==3 && l!=5 && m==3 && n!=5))
cout<<a[i]<<a[j]<<a[k]<<a[l]<<a[m]<<a[n]<<"\n";
}
}

不好意思修改一下,这下子应该对了,只不过我不会编写c#,你只要改一下就可以了

我用java写的,你能自己把它转换成C#吧,挺简单的,关键你看看算法就行了。
public class Arange {
public static void main(String[] args){
int[] num={1,2,2,3,4,5};
for(int i1=0;i1<6;i1++){
for(int i2=0;i2<6;i2++){
if(i1==i2) continue;
for(int i3=0;i3<6;i3++){
if(i1==i3||i2==i3||i3==4) continue;
for(int i4=0;i4<6;i4++){
if(i1==i4||i2==i4||i3==i4) con