一组数字:123,132,213,231,312,321,133.我想查找1*3(即百位带1,个位带3的一组数,上列数字符合条件的是:123,133
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 01:16:08
一组数字:123,132,213,231,312,321,133.我想查找1*3(即百位带1,个位带3的一组数,上列数字符合条件的是:123,133
一组数字:123,132,213,231,312,321,133.我想查找1*3(即百位带1,个位带3的一组数,
上列数字符合条件的是:123,133
一组数字:123,132,213,231,312,321,133.我想查找1*3(即百位带1,个位带3的一组数,上列数字符合条件的是:123,133
你应是在java中的数,所以这个,你看一下,LEN可以自己改.
-------------------------------------------------------------------------
public class demo {
public static void main(String[] args) {
\x05int len = 3;
\x05String[] array = { "1","2","3" };
\x05execute(array,len,"");
}
public static void execute(String[] array,int len,String str) {
\x05for (int i = 0; i < array.length; i++) {
\x05 str += array[i];
\x05 if (str.length() == len) {
\x05\x05System.out.println(str);
\x05 } else {
\x05\x05execute(array,len,str);
\x05 }
\x05 str = str.substring(0,str.length() - 1);
\x05}
}
}
你看一下这个.
----------------------------------------------------------------------------------------
import java.util.ArrayList;
import java.util.List;
public class demo {
public static void main(String[] args) {
\x05String[] array = { "1","2","3","4" };
\x05List list = new ArrayList();
\x05execute(array,list);
}
public static void execute(String[] array,List list) {
\x05for (int i = 0; i < array.length; i++) {
\x05 if (list.contains(array[i])) {
\x05\x05continue;
\x05 }
\x05 list.add(array[i]);
\x05 if (list.size() == array.length) {
\x05\x05String str = "";
\x05\x05for (int n = 0; n < list.size(); n++) {
\x05\x05 str += list.get(n);
\x05\x05}
\x05\x05System.out.println(str);
\x05 } else {
\x05\x05execute(array,list);
\x05 }
\x05 list.remove(list.size() - 1);
\x05}
}
}
大概思路是循环array
list记录放入了那些值,
如果放过了就忽略那个数,
没放过就在list中加入,进入递归过程.
当LIST的长度与array 相等,输出LIST中的.
add是添加元素
remove是移除
用List好判断那些元素添加了,
因为你是不重复的排列.
113、123、133、143、153、163、173、183、193、不就是只有这几个组合吗
另外既然有一组数字在那里,为什么不直接看,直接找,数字又不多