2016年1月13日 星期三

a524: 手機之謎

內容 :
鄭學長的手機裡有不可告人的秘密,為了不被發現那些照片和簡訊,他小心翼翼地把手機上鎖了。
幸好,你是個會寫程式的天才,你能夠產生所有的密碼去嘗試,現在趕快動手吧!
噢!還有一件事,基於某些理由,你知道鄭學長的密碼沒有重覆的字。
輸入說明 : 
輸入為一個 n (n<=8),代表鄭學長的密碼位數。
輸出說明 : 
輸出所有可能的密碼,依字典順序反向排列(因為你覺得他的密碼應該在後半段)。
範例輸入 : help
3
2
範例輸出:
321
312
231
213
132
123
21
12
提示 : 
標籤:


import java.util.Scanner;
public class a524 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int n=sc.nextInt();
StringBuilder sb=new StringBuilder();
for(int i=n;i>0;i--){
sb.append(i);
}
comb("",sb.toString());
}
}
static private void comb(String pre,String post){
if(post.length()>0){
for(int i=0;i<post.length();i++){
String str=pre+post.charAt(i);
StringBuffer sbf=new StringBuffer(post);
sbf.deleteCharAt(i);
comb(str,sbf.toString());
}
}
else{
System.out.println(pre);
}
}

}

沒有留言:

張貼留言