All pastes #435848 Raw Edit

Miscellany

public java v1 · immutable
·published 2007-04-12 05:16 UTC
rendered paste body
package euler.p024;import java.util.TreeSet;public class Permute2 {	//int[] number = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };	int[] number = { 0, 1, 2, 3 };	int count = 0;	TreeSet<Long> set = new TreeSet<Long>();	/**	 * @param args	 */	public static void main(String[] args) {		Permute2 p = new Permute2();		p.permute(0);		System.out.println(p.count);		int n = 1;		for (Long i : p.set) {            System.out.printf("%04d\n", i);		}	}	void permute(int idx) {		if (set.size() > 1000000)			set.remove(set.last());		if (set.add(new Long(getNum())))			count++;		for (int i = idx; i < number.length; i++) {			swap(idx, i);			permute(idx + 1);			swap(idx, i);		}	}	long getNum() {		long n = 0;		for (int i = 0; i < number.length; i++) {			n = n * 10 + number[i];		}		return n;	}	void swap(int i, int j) {		int t = number[i];		number[i] = number[j];		number[j] = t;	}}