请教大侠们一个小题目--新手提问. 1,2,3,4,5几个数字,输出任意的这五个数字的组合,要求:35不在一起,即 13542 是错误的.4不在第二位上,即 54213 是错误的.求输出的组合. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你用随机数取出五个数,加上个条件判断,然后填入到对应的数组就好了,如果不想要重复出现的可以写一个循环判断,具体API不会要去查文档。 从别的地方搞到:class Permutation { private String CurFixPart; private String PreGenNum; public static void main(String[] args){ Permutation p=new Permutation(); p.GenControll("12345"); } private String shift(String s, int pos){ String newStr; if (s.length()>pos+1) newStr=s.substring(pos, pos+1) +s.substring(0, pos) +s.substring(pos+1); else newStr=s.substring(pos) +s.substring(0, pos); return newStr; } protected int Validate(String newNum){ String newGenNum=CurFixPart+newNum; if (Integer.valueOf(newGenNum)<=Integer.valueOf(PreGenNum)) return 0; if (newGenNum.substring(1,2).equals("4") || (newGenNum.indexOf("35")!=-1) || (newGenNum.indexOf("53")!=-1)) return 0; PreGenNum=newGenNum; System.out.println(newGenNum); return 0; } public void GenControll(String Base) { PreGenNum="0"; CurFixPart=""; GenNext(Base, 0); } void GenNext(String varPart, int curPos){ if (varPart.length()==2){ Validate(varPart); Validate(shift(varPart, 1)); return; } String newGen=shift(varPart, curPos); String SavedFixPart=CurFixPart; CurFixPart=CurFixPart+newGen.substring(0,1); GenNext(newGen.substring(1), 0); CurFixPart=SavedFixPart; if (curPos==varPart.length()-1) return; GenNext(varPart, curPos+1); }} 新手提问 数组存放输入流数据的问题 IO流问题,但考的是循环基本功! socket:客户端接收不了服务器的消息 初学者问题 接数据库查询问题 java Swing中实现IP地址格式的输入_急用 SSL问题,请求援助! 关于配置文件的书写 散点分,表示我的存在,同时也提问一点问题 简单问题,考考你们,啊啊 JButton组件对鼠标反应不灵敏? 定义和使用抽象类,调用不到age这个方法!信息显示有误!望指点
private String PreGenNum; public static void main(String[] args){
Permutation p=new Permutation();
p.GenControll("12345");
} private String shift(String s, int pos){
String newStr;
if (s.length()>pos+1)
newStr=s.substring(pos, pos+1)
+s.substring(0, pos)
+s.substring(pos+1);
else
newStr=s.substring(pos)
+s.substring(0, pos);
return newStr;
}
protected int Validate(String newNum){
String newGenNum=CurFixPart+newNum;
if (Integer.valueOf(newGenNum)<=Integer.valueOf(PreGenNum))
return 0;
if (newGenNum.substring(1,2).equals("4") ||
(newGenNum.indexOf("35")!=-1) ||
(newGenNum.indexOf("53")!=-1))
return 0; PreGenNum=newGenNum;
System.out.println(newGenNum);
return 0;
}
public void GenControll(String Base) {
PreGenNum="0";
CurFixPart="";
GenNext(Base, 0);
}
void GenNext(String varPart, int curPos){
if (varPart.length()==2){
Validate(varPart);
Validate(shift(varPart, 1));
return;
} String newGen=shift(varPart, curPos);
String SavedFixPart=CurFixPart;
CurFixPart=CurFixPart+newGen.substring(0,1);
GenNext(newGen.substring(1), 0);
CurFixPart=SavedFixPart; if (curPos==varPart.length()-1)
return;
GenNext(varPart, curPos+1);
}
}