`
啸笑天
  • 浏览: 3433333 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

用1、2、3、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列 要求:"4"不能在第三位,"3"与"5"不能相连。

阅读更多

用1、2、3、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列 要求:"4"不能在第三位,"3"与"5"不能相连。

递归:

 

import java.util.ArrayList;
import java.util.List;

public class Test1 {
	 public static void f(String in, ArrayList al) {
	        if (al.size() == 1) {
	            String tmp = in ;
	            if (!(tmp.contains("35") || tmp.contains("53") || tmp.indexOf('4') == 2)) {
	                System.out.println(tmp);
	            }
	        } else {
	            ArrayList hsc = (ArrayList) al.clone();
	            if (in.length() != 0) {
	                hsc.remove(in.substring(in.length() - 1));
	            }
	            for (Object i : hsc) {
	                f(in + i, hsc);
	            }
	        }
	    }
	 public static void ff(String in, ArrayList<String> al){
		 if (al.size()==1) {
			if (!(in.contains("35")||in.contains("53")||in.indexOf("4")==2)) {
				System.out.println(in);
			}
		} else {
			ArrayList<String> hsc=(ArrayList<String>) al.clone();
			if (in.length()!=0) {
				hsc.remove(in.substring(in.length()-1));
			}
			for (String string : hsc) {
				ff(in+string,hsc);
			}
		}
	 }
	public static void main(String args[]) {
		  ArrayList<String> al = new ArrayList<String>();
	        al.add("1");
	        al.add("2");
	        al.add("3");
	        al.add("4");
	        al.add("5");
	        al.add("6");
	        f("", al);
	}
}

 循环遍历:

 

import java.util.ArrayList;

public class Test2 {
	public static void main(String args[]) {
		int[] nums = { 1, 2, 2, 3, 4, 5 };
		for (int i = 0; i < nums.length; i++) {
			for (int j = 0; j < nums.length; j++) {
				if (i == j || (nums[i] * nums[j] == 15))
					continue;
				for (int k = 0; k < nums.length; k++) {
					if (k == i || k == j || (nums[j] * nums[k] == 15)
							|| nums[k] == 4) {
						continue;
					}
					for (int m = 0; m < nums.length; m++) {
						if (m == k || m == i || m == j
								|| (nums[k] * nums[m] == 15)) {
							continue;
						}
						for (int n = 0; n < nums.length; n++) {
							if (n == m || n == k || n == i || n == j
									|| (nums[m] * nums[n] == 15)) {
								continue;
							}
							for (int l = 0; l < nums.length; l++) {
								if (l == n || l == m || l == k || l == j
										|| l == i || (nums[n] * nums[l] == 15)) {
									continue;
								}
								System.out.println(nums[i] + "" + nums[j] + ""
										+ nums[k] + "" + nums[m] + "" + nums[n]
										+ "" + nums[l]);
							}
						}
					}
				}
			}
		}
	}
}
分享到:
评论

相关推荐

    编写一个java应用程序

    用户从键盘输入一个1-9999之间的数,程序将判断这个数是几位数,并判断这个数是否回文数。回文数是指将数含有的数字逆序排列后得到的数和原数相同,例如12121,4224,6778776等都是回文数。 1)程序具有判断用户的输入...

    java源码包2

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    蓝点被必做的算法经典题java.c/c++

    【程序29】:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。 【程序30】写一个方法,用二分查找法判断任意整数在...

    java源码包4

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    java源码包3

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实...

    java源码包---java 源码 大量 实例

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实...

    JAVA上百实例源码以及开源项目

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    java 经典习题.doc

    题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 1.程序分析:利用for循环控制100-999个数,...

    JAVA上百实例源码以及开源项目源代码

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    Java经典编程题(附答案)

    题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如: 153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 1.程序分析:利用for循环控制100-999个...

    java面试题

    84.9. 题目1:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连. 117 84.10. 写一个方法,实现字符串的反转,如:输入...

    跟我学Java面向对象程序设计技术及应用——应用冒泡排序算法实现数组元素排序的Java程序实现示例.pdf

    杨教授工作室,版权所有,盗版必究, 3/29 页 3 2、在工程项目创建的对话框中输入项目名称 JavaDemo,并选择项目存放的目录路径 3、点击对话框中的完成(Finish)按钮,将创建出一个空的 Java 应用程序项目 杨教授...

    java应用软件程序设计

    这里边包括:第1章 Java图形用户界面编程 1 实例1 布局管理 2 实例2 设计软件启动界面 9 实例3 实现多色窗口 11 实例4 切分窗口 13 实例5 丰富多彩的按钮 15 实例6 在窗口中显示背景图 16 实例...

    黑马入学考试试题

    4、有五个学生,每个学生有3门课(语文、数学、英语)的成绩,写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩),然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu....

    易语言程序免安装版下载

     静态编译后的易语言EXE/DLL之间不能再共享譬如窗口、窗口组件等类似资源,对于已经静态连接到一个EXE/DLL中的支持库,该支持库中的数据或资源将不能再被其它EXE/DLL中所使用的同名支持库访问。这是因为代码被分别...

    网管教程 从入门到精通软件篇.txt

    INT:中间代码,当一个源程序经过语法检查后编译产生一个可执行代码 IOF:Findit文档 IQY:Microsoft Internet查询文件 ISO:根据ISD 9660有关CD-ROM文件系统标准列出CD-ROM上的文件 ISP:X-Internet签字文件 ...

    ASP200问.EXE

    46.如何用Cookie实现仅弹出一次同样的窗口 48.如何清除页面缓存 49.如何获取用户浏览器信息 50.如何获取用户真实的IP地址 52.如何判断网站的虚拟物理路径 53.如何解决URL含有特殊字符引发的错误 第4章 ASP组件 55....

Global site tag (gtag.js) - Google Analytics