面试题 这样一道题:1,2,2,3,4,5 这6个数,要输出它所有的组合,但4不能开头 ,3跟5不能在一起。请问怎么搞?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哈哈,题目表述的意思不清楚啊可不可以只要一个数字?还是必须要6个数字?public class Test { public static void simpleMethod(int start,int end){ for(int i=start;i<=end;i++){ String temp =String.valueOf(i); if(!temp.matches("^3.*")&&!temp.matches(".*35.*")&&!temp.matches(".*53.*")){ System.out.println(temp); } } } public static void main(String[] args) { //可以是一个数字 simpleMethod(1,654321); //必须是6个数字 simpleMethod(123456,654321); }}来个非主流的方法,投机取巧而已。 import java.util.Arrays;public class Test3 { public static void main(String[] args) { int count = 0; for(int i=122345; i<=543221; i++) { if(check(i)) { System.out.print(i + " "); count ++; if(count%10 == 0) System.out.println(); } } System.out.println("\n共" + count + "个数字符合要求"); } public static boolean check(int num) { String str = Integer.toString(num); char[] arr = str.toCharArray(); Arrays.sort(arr); int count = 0; for(int i=0; i<5; i++) { if(arr[i] == '2') { if(++count > 2) return false; } else if(arr[i] == arr[i+1]){ return false; } } if (str.contains("0") || str.contains("6") || str.contains("7") || str.contains("8") || str.contains("9") || str.charAt(0) == '4' || str.contains("35") || str.contains("53")) { return false; } return true; }} 这么复杂的算法都可以想到。我还本来想用 一个 6 for 循环,在来做判断呢!高 在11楼的代码上改了一下check(int num)方法 private static boolean check(int i) { String value=String.valueOf(i); if(value.matches("^4.*|.*35.*|.*53.*")){ return false; } return true; } 大家觉得Service是否有必要设计层范型呢? 初学者的几个小问题? 求职,帮帮忙!!! 我有些强迫症,看到==或!=我就想不通 html:link page中如何向Action传递多个参数? 一个JAVA基础的小问题请各位达人帮忙 如何控制excel的分页? 关于在一个jsp中调用一个数据库中两张表的数据 eclipse创建maven子项目 s:tree相关问题 如何将oracle的表导入access 求救 jsp 复选框 参数 传递问题
public class Test {
public static void simpleMethod(int start,int end){
for(int i=start;i<=end;i++){
String temp =String.valueOf(i);
if(!temp.matches("^3.*")&&!temp.matches(".*35.*")&&!temp.matches(".*53.*")){
System.out.println(temp);
}
}
} public static void main(String[] args) {
//可以是一个数字
simpleMethod(1,654321);
//必须是6个数字
simpleMethod(123456,654321);
}}
来个非主流的方法,投机取巧而已。
import java.util.Arrays;public class Test3 { public static void main(String[] args) {
int count = 0;
for(int i=122345; i<=543221; i++) {
if(check(i)) {
System.out.print(i + " ");
count ++;
if(count%10 == 0)
System.out.println();
}
}
System.out.println("\n共" + count + "个数字符合要求");
}
public static boolean check(int num) {
String str = Integer.toString(num);
char[] arr = str.toCharArray();
Arrays.sort(arr);
int count = 0;
for(int i=0; i<5; i++) {
if(arr[i] == '2') {
if(++count > 2)
return false;
} else if(arr[i] == arr[i+1]){
return false;
}
} if (str.contains("0") || str.contains("6") || str.contains("7") || str.contains("8") || str.contains("9")
|| str.charAt(0) == '4' || str.contains("35") || str.contains("53")) {
return false;
}
return true;
}}
String value=String.valueOf(i);
if(value.matches("^4.*|.*35.*|.*53.*")){
return false;
}
return true;
}