`
啸笑天
  • 浏览: 3462304 次
  • 性别: 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程序设计实用教程(第3版)习02.07 数字菱形.rar

    在Java编程语言中,"数字菱形"是一个常见的练习题目,它要求程序员通过代码来打印出数字排列成的菱形形状。这个练习旨在帮助初学者掌握控制台输出、循环结构以及条件判断等基本编程概念。在《Java程序设计实用教程...

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

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

    编写一个java应用程序

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

    java程序设计实用教程(第3版)习02.06 数字塔.rar

    例如,最底层可能只有一个数字1,上一层可能有2个数字1、2,再上一层可能有3个数字1、2、3,以此类推。这个习题可能是要求学生编写一个程序,能够根据输入的层数生成对应的数字塔。 解决这个问题,首先需要理解递归...

    java小练习,Java练习小程序,Java必用

    - 可以使用循环结构进行判断,并打印出所有的质数。 28. **选择排序**: - 对一个数组进行排序。 - 选择排序算法的基本思想是在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置。 29. **二维...

    java源码包2

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

    java源码包3

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

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

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

    Java语言写幸运抽奖程序

    通过以上分析,我们可以看到这个Java程序是如何使用基本的数据结构(数组)、控制流(循环)和算法(冒泡排序)来实现一个简单的功能——生成五个随机数,排序并输出它们的和。这对于初学者来说是一个很好的练习,...

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

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

    java源码包4

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

    用java写的扬辉三角 觉得写的还不错 大家看一下

    接着定义了一个名为`Gyx`的公共类,其中包含`main`方法,这是Java程序的入口点。 在`main`方法内部,创建了一个`Scanner`对象`sc`来获取用户输入的行数`n`。之后,创建了两个长度为`n+2`的整型数组`array1`和`array...

    java面向对象程序设计习题大全

    - 定义一个名为`Person`的类,包含属性`name`和`age`,以及一个打印个人信息的方法。 - 示例代码: ```java public class Person { private String name; private int age; public Person(String name, int ...

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

    - **目标**: 使用数字1、2、2、3、4、5打印出所有不同的排列,限制“4”不能在第三位,“3”与“5”不能相邻。 - **程序分析**: - 使用递归方法生成所有可能的排列。 - 在递归过程中加入限制条件,避免生成不符合...

    Java 1,2,3,4能组成多少个互不相同且无重复数字的实现代码

    这将告诉我们有多少个不同的三位数可以由1、2、3、4组成,且每个数字仅出现一次。 这种问题属于组合数学中的排列问题,具体来说,是一个从4个不同元素中取3个进行排列的问题,其公式为`P(4, 3)`或`4! / (4-3)!`,...

    java程序设计题目.pdf

    Java是一种广泛使用的编程语言, Java程序设计题目.pdf提供了多个Java程序设计题目,涵盖了顺序程序设计、分支和循环程序设计、数组的应用等方面。这些题目旨在考察学生对Java语言的掌握程度和编程能力。 一、顺序...

    50道JAVA基础编程练习题

    【程序 3】 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。 程序分析:利用 for 循环控制 100-999 个数,每个数分解出个位、十位、百位,然后计算立方和判断是否...

    java语言程序设计基础篇第十版第十三章练习标准答案.pdf

    这个类具有三个私有变量 `side1`、`side2` 和 `side3`,分别表示三角形的三个边长。类中实现了 `getArea` 方法和 `getPerimeter` 方法,它们分别计算三角形的面积和周长。`getArea` 方法使用 Heron's formula 计算...

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

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

    打印输出魔方(它的每一行、每一列和对角线之和均相等)

     4 9 2 魔方阵中各数排列规律为: ⑴、将“1”放在第一行的中间一列; ⑵、从“2”开始直到n×n为止的各数依次按下列规则存放:每一个数存放的行比前一个数的行数减1,列数同样 加1;⑶、如果上一数的行数为1,则...

Global site tag (gtag.js) - Google Analytics