(急)求大侠用java编写 1,2,2,3,4,5这6个数排列,要求不重复,要求:“4”不在第3位,“3”和“5”不相连

麻烦把程序写全,先谢谢了... 麻烦把程序写全,先 谢谢了 展开
 我来答
flyingFish211
2011-07-06 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
public class Test {

public static void main(String[] args) {

int[] nums = {1, 2,3, 4, 5, 6};

for(int i = 0; i < nums.length; i++){
for(int k = 0; k < nums.length; k++){
if(k != i){
for(int j = 0 ; j < nums.length; j++){
if(j != i && j != k && nums[j] != 4){
for(int m = 0; m < nums.length; m++){
if(m != i && m != k && m != j ){
for(int n = 0; n < nums.length; n++){
if(n != i && n != j && n != m && n != k){
for(int p = 0; p < nums.length; p++){
if(p != i && p != j && p != k && p != m && p != n){
StringBuilder sb = new StringBuilder();
sb.append(nums[i]).append(nums[k]).append(nums[j]);
sb.append(nums[m]).append(nums[n]).append(nums[p]);

String str = sb.toString();

if(!(str.contains("35") || str.contains("53"))){
System.out.println(str);
}
}
}
}
}
}
}
}
}
}
}
}

}

}

----------------测试结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kiss0ya
2011-07-11 · TA获得超过1567个赞
知道答主
回答量:93
采纳率:0%
帮助的人:92.8万
展开全部
package com.wqx.test;

public class Test {
public String[][] getbigstr(String[][] oldtemp, String message) {
int count = 0;
for (int i = 0; i < oldtemp.length; i++) {
for (int j = 0; j < oldtemp[i].length; j++) {
count++;
}
}
String nums[][] = new String[count][oldtemp[0].length + 1];
for (int i = 0; i < oldtemp.length; i++) {
for (int j = 0; j < oldtemp[i].length; j++) {
nums[i * oldtemp[i].length + j][0] = oldtemp[i][j];
}
}
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums[i].length; j++) {
nums[i][j] = nums[i][0];
}
}
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums[i].length; j++) {
nums[i][j] = insertString(nums[i][j], message, j);
}
}
return nums;
}

public String insertString(String str, String message, int index) {
String result = str;
if (index == 0) {
result = message + str;
} else if (index == str.length()) {
result = str + message;
} else {
String temphead = str.substring(0, index);
String tempbody = str.substring(index, str.length());
result = temphead + message + tempbody;
}
return result;
}

public String[][] init(String first, String second, String third) {
String[] temp = new String[] { first + second, second + first };
String nums[][] = new String[2][3];
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums[i].length; j++) {
nums[i][j] = temp[i];
}
}
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums[i].length; j++) {
nums[i][j] = insertString(nums[i][j], third, j);
}
}
return nums;
}

public String check(String message) {
if(message.indexOf("4")==2)
{
message="";
}else if(message.indexOf("35")!=-1&&message.indexOf("53")!=-1)
{
message="";
}
else
{

}
return message;
}

public String[][] checkrepeat(String[][] nums)
{
int index=0;
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums[i].length; j++) {
nums[i][j]=getnum(index, nums[i][j], nums);
index++;
}
}
return nums;
}

public String getnum(int index,String temp,String[][] nums)
{
int k=0;
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums[i].length; j++) {
if(k==index)
{
k++;
continue;
}
else
{
if(nums[i][j].equals(temp))
{
temp="";
}
}
k++;
}
}
return temp;
}
public static void main(String[] args) {
String[] a = new String[] { "1", "2", "2", "3", "4", "5" };
Test java = new Test();
String oldtemp[][] = java.init(a[0], a[1], a[2]);
for (int i = 3; i < a.length; i++) {
oldtemp = java.getbigstr(oldtemp, a[i]);
}
int count = 0;
oldtemp=java.checkrepeat(oldtemp);
for (int i = 0; i < oldtemp.length; i++) {
for (int j = 0; j < oldtemp[i].length; j++) {
oldtemp[i][j] = java.check(oldtemp[i][j]);
if (oldtemp[i][j].equals("")) {
continue;
} else {
System.out.println(oldtemp[i][j]);
count++;
}
}
}
System.out.println(count);
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-07-06
展开全部
public class Permutation {
private int[] a;

public Permutation(int[] a) {
this.a = a;
}

public boolean isOk(int b, int e) {// 判断是否重复
if (b < e) {
for (int i = b; i < e; i++) {
if (a[i] == a[e])
return false;
}
}
return true;
}

public void permutation(int k) {
if (k >= a.length) {
print();
} else {
for (int i = k; i < a.length; i++) {
if (isOk(k, i)) {
swap(i, k);
permutation(k + 1);
swap(i, k);
}
}
}

}

private void swap(int i, int k) {
int temp = a[i];
a[i] = a[k];
a[k] = temp;
}

private void print() {
for (int i = 0; i < a.length - 1; i++) {
if (a[i] == 2 && a[i + 1] == 5)
return;
}
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]);
}
System.out.println();
}

public static void main(String[] args) {
Permutation p = new Permutation(new int[] );
p.permutation(0);
}
}
另外,虚机团上产品团购,超级便宜
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式