[Java] 纯文本查看 复制代码
public final class Main {
public static void main(final String[] args) {
Main.traverse(ArrayUtil.box("1234".toCharArray()), 0, chars -> Log.debug(new String(ArrayUtil.unBox(chars), 1, 3)));
}
/**
* 遍历几个元素的所有可能的组合
*
* @param array 元素列表
* @param index 请传 0
* @param out 结果输出的接口
*/
public static <T> void traverse(final T[] array, final int index, final TraverseOut<T> out) {
if (index == array.length - 1) {
out.invoke(array);
} else {
for (int index2 = index; index2 < array.length; index2++) {
ArrayUtil.swap(array, index, index2);
Main.traverse(array, index + 1, out);
ArrayUtil.swap(array, index, index2);
}
}
}
/**
* 遍历结果输出的接口
*
* @author cat73
*/
@FunctionalInterface
public static interface TraverseOut<T> {
void invoke(T[] t);
}
}
[Java] 纯文本查看 复制代码
import java.util.Arrays;
public class Demo {
public static void main(String[] args) {
int count = 0;
for (int i = 1234; i <= 4321; i++) {
char[] num = Integer.toString(i).toCharArray();
Arrays.sort(num);
if (String.valueOf(num).equals("1234")) {
System.out.println(i);
count++;
}
}
System.out.println("总计:" + count);
}
}
[AppleScript] 纯文本查看 复制代码
public class Demo59 {
/**
* 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
* 思路:
* 123,124,132,134,142,143---->1*2*3*4=24
* a*100+b*10+c--->三重循环
*
*/
public static void main(String[] args) {
int count=0;
for(int i = 1;i<5;i++){
for(int j=1;j<5;j++){
for(int k=1;k<5;k++){
if(i!=k && k!=j && j!=i){
System.out.print(i*100+j*10+k+"\t");
count++;
if(count%6==0){
System.out.println();
}
}
}
}
}
System.out.println("能组成"+count+"个不重复且互不相同的三位数");
}
}