解题思路:使用全排序 ,然后从小到大排序 去重就好
注意事项:
参考代码:
import java.awt.print.Book; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Scanner; public class 彩票 { /** * @param args */ static String n=""; static int[] book = new int[10];// 手牌 static int[] a = new int[10];// 三个盒子 static ArrayList<String> arrayList; public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner=new Scanner(System.in); n=scanner.next(); arrayList=new ArrayList<String>(); for (int i = 0; i <n.length(); i++) { int sum=Integer.parseInt(""+n.charAt(i)); book[sum]++; } dfs(1); Collections.sort(arrayList); String d=""; for (String str : arrayList) { if (str.equals(d)) { } else { System.out.println(str); d=str; } } } static void dfs(int step) { if (step==n.length()+1) {//结束条件 String num=""; for (int i = 1; i <=n.length(); i++) { num+=a[i]; } arrayList.add(num); return; } for (int i = 0; i <n.length(); i++) { int sum=Integer.parseInt(""+n.charAt(i)); if (book[sum] >=1) {// 判断手上是否有这张手牌 //使用扑克牌 a[step] = sum;//把牌放到空盒子里 book[sum]--;//标记手上没有这张牌 dfs(step + 1);//调用之前的方法 book[sum]++;//结束后牌拿出 } } return; } }
0.0分
2 人评分
小明A+B (C语言代码)浏览:1247 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:608 |
【偶数求和】 (C语言代码)浏览:556 |
2005年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:582 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:696 |
Cylinder (C语言描述,蓝桥杯)浏览:1247 |
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:581 |
矩阵的对角线之和 (C语言代码)浏览:1343 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:558 |
母牛的故事 (C语言代码)浏览:451 |