博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用 1,2,2,3,4,5 六个数字,打印出所有不同的排列,要求:"4"不能在第三位,"3"与"5"不能相连...
阅读量:5155 次
发布时间:2019-06-13

本文共 1470 字,大约阅读时间需要 4 分钟。

题目如下:用 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; }}

运行图

转载于:https://www.cnblogs.com/wangqilong/p/8279763.html

你可能感兴趣的文章
bzoj1040: [ZJOI2008]骑士
查看>>
LeetCode 74. Search a 2D Matrix(搜索二维矩阵)
查看>>
利用SignalR来同步更新Winfrom
查看>>
反射机制
查看>>
CocoaPod
查看>>
BZOJ 1251: 序列终结者 [splay]
查看>>
5G边缘网络虚拟化的利器:vCPE和SD-WAN
查看>>
MATLAB基础入门笔记
查看>>
【UVA】434-Matty&#39;s Blocks
查看>>
Android开发技术周报 Issue#80
查看>>
hadoop2.2.0+hive-0.10.0完全分布式安装方法
查看>>
django知识点总结
查看>>
C++ STL stack、queue和vector的使用
查看>>
使用Reporting Services时遇到的小问题
查看>>
约瑟夫问题
查看>>
Arduino 报错总结
查看>>
树莓派Android Things物联网开发:树莓派GPIO引脚图
查看>>
矩阵快速幂---BestCoder Round#8 1002
查看>>
js兼容公用方法
查看>>
如何将应用完美迁移至Android P版本
查看>>