zoukankan      html  css  js  c++  java
  • 用 1,2,2,3,4,5 六个数字,打印出所有不同的排列,要求:"4"不能在第三位,"3"与"5"不能相连

    题目如下:用 1、2、2、3、4、5 这六个数字,用 java 写一个 main 函数,打印出所有不同的排列,如: 512234、412345等,要求:”4”不能在第位,”3”与”5”不能相连。
    分析:
    1.不考虑条件,一共会产生多少个数字
    2.去筛选数字,满足要求的留下来
    3.将数字int类型转为String类型,利用String的方法来筛选,具体看API


    package com.math.forth;
    
    /***
     * 题目如下:用 1、2、2、3、4、5 这六个数字,用 java 写一个 main 函数,打印出所有不同的排列,如: 512234、412345
     * 等,要求:"4"不能在第三位,"3"与"5"不能相连。
     * 分析:
     * 1.不考虑条件,一共会产生多少个数字
     * 2.去筛选数字,满足要求的留下来
     * 3.将数字int类型转为String类型,利用String的方法来筛选
     * @author wql
     *
     */
    public class Math17 {
        public static void main(String[] args) {
            //六个数字所有组成的情况,从最小数到最大数
            for (int i = 122345; i <= 543221; i++) {
                if (method(String.valueOf(i))) {    //是否满足条件
                    System.out.println(i);
                }
            }
    
        }
    
        /***
         * 判断数字是否满足要求
         * 
         * @param s
         */
        public static boolean method(String s) {
            String[] arr = { "1", "2", "3", "4", "5" };
    
            // 判断数字中是否含有12345五个数字
            for (int i = 0; i < arr.length; i++) {
                if (!s.contains(arr[i])) {
                    return false;
                }
            }
    
            // 判断数字中是否含有两个2,上面已经判断6个数字含有12345五个数字,只有一个数字有重复的机会,因此这里不需要判断数字2会出现3次甚至3次以上
            if (s.lastIndexOf("2") == s.indexOf("2")) {
                return false;
            }
    
            // 判断"4"不能在第三位
            if (s.indexOf("4") == 2) {
                return false;
            }
    
            // 判断"3"与"5"不能相连
            if (s.contains("35") || s.contains("53")) {
                return false;
            }
    
            //上面条件都满足,那么返回true
            return true;
        }
    
    }
    

    运行图

  • 相关阅读:
    JavaScript 的数据类型及其检测
    编写JavaScript 代码的5个小技巧
    canvas标签的基本用法
    析构函数的调用------新标准c++程序设计
    类型转换构造函数 及使用explicit避免类型自动转换------新标准c++程序设计
    c++小知识
    this指针------新标准c++程序设计
    类的互相包含------新标准c++程序设计
    封闭类------新标准c++程序设计
    c++内存模型------计算机系统核心概念及软硬件实现
  • 原文地址:https://www.cnblogs.com/wangqilong/p/8279763.html
Copyright © 2011-2022 走看看