[ create a new paste ] login | about

Link: http://codepad.org/WHpdnCqq    [ raw code | fork ]

PHP, pasted on Nov 7:
import java.util.ArrayList;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Jstudy_072_847 {
	boolean flgs[] = {true, true, true, true, true, true, true, true, true};
	int number;
	char seq[] = new char[9];
	ArrayList<String> list = new ArrayList();
	void inputnumber(){
		String str;
		try {
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			while(true){
				System.out.print("数値入力(1-9)");
				str = br.readLine();
				System.out.println(str.length() + " " + str.compareTo("0")
					+ " " + str.compareTo("a"));
				if(str.length() == 1 && str.compareTo("0") > 0 && str.compareTo("a") < 0)
					break;
			}
			number = Integer.parseInt(str);
			System.out.println("number:" + number);
		} catch (Exception e){
			e.printStackTrace();
		}
	}
	void makenumberstrings(int pos){
		int i;
		for(i = 1; i <= number; i++){
			if(flgs[i - 1]){		//この数字(i)が未使用かどうか
				seq[pos] = (char)(i + '0');	//未使用なら数列に加える
				if(pos == number - 1){	//数列が完成した
					list.add(new String(seq, 0, number));//listへ
					break;		//最後の数字はひとつしか無いのでループしない
				}
				flgs[i - 1] = false;	//この数字を使用済にする
				makenumberstrings(pos + 1);//次の数字を探す処理へ
				flgs[i - 1] = true;	//この数字を再使用可能にする
				seq[pos] = 0;
			}
		}
	}
	void dispnumberstrings(){
		for(String s : list)
			System.out.println(s);
	}
	public static void main(String[] args) {
		Jstudy_072_847 j = new Jstudy_072_847();
		j.inputnumber();
		j.makenumberstrings(0);
		j.dispnumberstrings();
	}
}


Create a new paste based on this one


Comments: