java 穷举 0 - 9 之间所有不重复的值

java 穷举 0 - 9 之间所有不重复的值
/* 五、分析以下需求,并用代码实现:
        (1) 打印由 7,8,9 三个数组成的三位数,要求该三位数中任意两位数字不能相同;
        (2) 打印格式最后的三位数字以空格分隔,如 789 798 879 897 978 987。
         注:要求使用 StringBuilder 来完成 */
public class HomeWork05 {    public static void main(String[] args) throws IOException {
//         输入值并简单处理
        Scanner sc = new Scanner(System.in);
        System.out.println(" 请输入起始值 (0~9):");
        int start=sc.nextInt();
        System.out.println(" 请输入结束值 (0~9):");
        int end=sc.nextInt();
        int bound=end-start+1;
        StringBuilder stringBuilder = new StringBuilder();
        HashSet<String> set = new HashSet<>();
        int cout=0;
        Random r = new Random();
        long bCount=boundCount(bound);
        if (bCount>10000){            System.out.println(" 结果数超过 10000 为 "+bCount+" 计算会很慢, 请按任意键继续 ");
            System.in.read();
        }
//         穷举各种可能,小于正确结果个数持续执行   直到达到正确个数
        while (set.size()<bCount) {            int number = r.nextInt(bound) + start;
            if (!stringBuilder.toString().contains(String.valueOf(number))&&stringBuilder.toString().length()<bound){                stringBuilder.append(number);
            }else if (stringBuilder.toString().length()==bound){                set.add(stringBuilder.toString());
                stringBuilder=new StringBuilder();
            }
        }
        List ts = new ArrayList<>(set);
        Collections.sort(ts); // 排序
        System.out.println(" 结果数:"+ts.size());
        System.out.println(ts.toString().replace("[","")
                .replace("]","")
                .replace(","," "));
    }

    /**
     *  计算笛卡尔积运算去重后个数
     * @param bound
     * @return
     */
    public static long boundCount(int bound){
        int sum=1;
        for (int i = 1; i <= bound; i++) {
           sum*=i;
        }
        return sum;
    }
}

手机扫描二维码访问

本文标题:《java 穷举 0 - 9 之间所有不重复的值》作者:极四维博客
原文链接:https://cway.top/post/137.html
特别注明外均为原创,转载请注明。

分享到微信

扫描二维码

可在微信查看或分享至朋友圈。

相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年10月    »
123456
78910111213
14151617181920
21222324252627
28293031

搜索

控制面板

您好,欢迎到访网站!
  查看权限

最新留言

文章归档

  • 订阅本站的 RSS 2.0 新闻聚合