您的位置:首页 > 编程语言 > Java开发

用java语言实现,一个组数:122345这6个数,打印出它所有可能的组合;要求4不能在第3位,3和5不能相连

2013-05-17 17:00 507 查看
/**

*

*/

package com.test;

/**

编程:用java语言实现,一个组数:122345这6个数,打印出它所有可能的组合;要求4不能在第3位,3和5不能相连

*

*/

public class AryMage {

    public static void main(String[] args) {

AryMage m=new AryMage();

m.com();

    }

    private int []b={1,2,2,3,4,5};

    private int result=0;

    private int tp=b.length;

    private int used[]={0,0,0,0,0,0};

    private void mark(int result){

if(result/(int)Math.pow(10,b.length-1)<1)return;

if(result/1000%10==4)return;

String str=result+"";

int n,m;

n=str.indexOf('3');

m=str.indexOf('5');

if(Math.abs(n-m)==1)return;

System.out.println(result+"");

    }

    public void com(){

seal(tp);

    }

    private void make(int i,int a,int b,int dp){

this.b[i]=10*a+b;

mark(this.b[i]);

seal(dp-1);

    }

    private void seal(int dp){

if(dp==0)return;

for(int i=0;i<b.length;i++)

    for(int j=0;j<b.length;j++){

if(i!=j&&used[i]+used[j]==0){

    used[j]=1;

    tp--;

    int p=b[i],q=b[j];

    make(i,p,q,dp);

    b[i]=p;b[j]=q;

    used[j]=0;

    tp++;

}

    }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐