一个排列组合的问题
2009-07-28 10:26
316 查看
给定六个数字:1、2、3、3、5、6,试编程求出满足下述要求的,用这六个数字组成的6位数的个数:
1) 两个数字3不能相邻,例如653321不允许
2) 数字5不能在第5位,例如132356不允许
我写了个运用穷举法进行筛选的代码,呵呵,感觉实现得很不优雅……
public class Test {
public static void main(String[] args) {
int num=0;
int[] arr={1,2,3,4,5,6}; //先把3换成4初筛
for(int i=0;i<6;i++){
for(int j=0;j<6;j++){
if(j==i)
continue; //如果数组的这个位置已经占了,跳出循环
for(int k=0;k<6;k++){
if(k==i||k==j)
continue;
for(int l=0;l<6;l++){
if(l==i||l==j||l==k)
continue;
for(int m=0;m<6;m++){
if(m==i||m==j||m==k||m==l)
continue;
for(int n=0;n<6;n++){
if(n==i||n==j||n==k||n==l||n==m)
continue;
String str=""+arr[i]+arr[j]+arr[k]+arr[l]+arr[m]+arr
; //形成数字串
if(str.indexOf("5")==4) //去掉数字5在位置5的
continue;
if(str.indexOf("4")>str.indexOf("3")) //数字3、数字4交换位置的只取一个
continue;
str=str.replace('4','3'); //数字4换成数字3
if(str.indexOf("33")>=0)
continue; //去掉33相邻的数字串
num++;
System.out.print(str+" ");
if(num%10==0)
System.out.println();
}
}
}
}
}
}
System.out.println(num+"个");
}
}
1) 两个数字3不能相邻,例如653321不允许
2) 数字5不能在第5位,例如132356不允许
我写了个运用穷举法进行筛选的代码,呵呵,感觉实现得很不优雅……
public class Test {
public static void main(String[] args) {
int num=0;
int[] arr={1,2,3,4,5,6}; //先把3换成4初筛
for(int i=0;i<6;i++){
for(int j=0;j<6;j++){
if(j==i)
continue; //如果数组的这个位置已经占了,跳出循环
for(int k=0;k<6;k++){
if(k==i||k==j)
continue;
for(int l=0;l<6;l++){
if(l==i||l==j||l==k)
continue;
for(int m=0;m<6;m++){
if(m==i||m==j||m==k||m==l)
continue;
for(int n=0;n<6;n++){
if(n==i||n==j||n==k||n==l||n==m)
continue;
String str=""+arr[i]+arr[j]+arr[k]+arr[l]+arr[m]+arr
; //形成数字串
if(str.indexOf("5")==4) //去掉数字5在位置5的
continue;
if(str.indexOf("4")>str.indexOf("3")) //数字3、数字4交换位置的只取一个
continue;
str=str.replace('4','3'); //数字4换成数字3
if(str.indexOf("33")>=0)
continue; //去掉33相邻的数字串
num++;
System.out.print(str+" ");
if(num%10==0)
System.out.println();
}
}
}
}
}
}
System.out.println(num+"个");
}
}
相关文章推荐
- 一个排列组合的分组问题
- 求一个数组,n个元素的不同组合(排列组合问题)
- UVA 369题Combinations(一个排列组合问题)
- 高并发操作同一个数据造成错误逻辑数据问题
- xmlrpc使用中的一个问题
- MySQL,4.0升级到5.1遇到一个问题
- 本人初学WCF ,请教一个问题
- POJ 1703 Find them, Catch them 并查集 (关系问题 判断是否在一个集合)
- 一个文件搞定操作系统的所有问题
- GDAL对TIF创建内建金字塔一个问题
- 小技巧找出一个php的cron脚本出问题的代码行
- 一个solaris的内核问题的解答
- 一个诡异的升级数据包出错问题
- Linux下安装VMWare的一个问题
- setAttribute一个兼容性问题
- 使用jatoolsPrinter打印页面后通过window.close()出现的一个问题
- 【杂症】一个豌豆荚引发的血案——关于ADB server didn't ACK的问题
- iOS微信支持遇到的问题:只显示一个确定按钮、onResp不回调、闪回
- 关于一个xml schema校验问题的解决办法
- 微信公众号平台网页授权接口中获取到的授权code传递给(即一个微信公众号网页授权给)任何其他多个回调域名下的url,解决了只能设置一个网页授权回调域名的问题,解决了redirect_uri参数错误的问