`

用1、2、2、3、4、5这六个数字 , 用java写一个main函数,打印出所有不同的排列

 
阅读更多
package ArithmeticTest;

import java.util.HashSet;
import java.util.Set;

/**
 * 题目:用1、2、2、3、4、5这六个数字,
 * 用java写一个main函数,打印出所有不同的排列,
 * 如:512234、412345等,要求:”4″不能在第三位,”3″与”5″不能相连.
 * @author hbj
 * 
 */
public class Arithmetic2 {
	static Set<String> intSet = new HashSet<String>();
	public static void doSomething(Integer[] array,int count,String result){
		if(count==6){
			if(result.indexOf('4')!=2&&!result.contains("35")&&!result.contains("53")){
				intSet.add(result);
			}
		}else{
			for(int i=0;i<array.length;i++){
				if(array[i]!=0){
					int temCount = count;
					String _tem = result;
					_tem += array[i]+"";
					Integer[] _array = array.clone();
					_array[i]=0;
					doSomething(_array,++temCount,_tem);	
				}
			}
		}
	}
	
	
	
	public static void main(String[] args){
		Integer[] array = new Integer[]{1,2,2,3,4,5};
		Arithmetic2.doSomething(array, 0, "");
		Integer  c=1;
		for(String s :intSet){
			System.out.println((c++)+": "+s);
		}
	}
	
}


结果是 198个,不知道对了没有
分享到:
评论

相关推荐

    一个关于java实现的迭代用法例子,太经典了

    用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求: "4 "不能在第三位, "3 "与 "5 "不能相连.

    JAVA多线程运用

    3. 修改实验1第2题的程序,添加适当代码,以确保每个数字都恰好只被打印一次。 实验步骤: (1)、创建三个类Counter, Printer,Storage (2)、 创建TestCounter类,在该类中定义main函数,在main函数中定义Storage...

    java递归实现 阶乘

    )是5 × 4 × 3 × 2 × 1 = 120。递归方法计算阶乘的基本思路是:n! = n × (n - 1)!,当n为1时,1! = 1,这是递归的基础情况。 在Java中,我们可以创建一个名为`factorial`的方法,该方法接受一个整数n作为参数...

    只用三行代码就从一千个数字随机选出了一百个不同的数字!

    这里我们将详细讲解如何实现这一功能,并分析给出的两个文件——Swap.java和RandomNum.java。 首先,让我们了解基本的随机数生成。在Java中,`java.util.Random`类是用于生成随机数的核心工具。我们可以创建一个`...

    数字旋转方阵(java)

    在本实验中,任务是创建一个Java程序,用于输出顺时针旋转的数字方阵。这个方阵的特性是从中心开始,数字按照顺时针方向填充。给定的代码片段是用C++编写的,但我们可以将其转换为Java语言,并解释其工作原理。 ...

    java编写一个乘法表

    - **主方法**:`public static void main(String[] args)` 是Java程序的入口点,所有Java应用程序都必须包含这样一个方法。 - **成员方法**:`static void cfb()` 是类`ChengFaBiao`的一个静态方法,用于生成乘法表...

    JAVA实现求1到1万之间所有回文数

    在编程领域,回文数是一个十分有趣的主题,它是指一个正读反读都能得到相同结果的数字,例如121、12321等。本篇将详细讲解如何使用Java编程语言来实现求解1到1万之间所有回文数的算法。 首先,我们需要理解如何判断...

    Java:打印出100以内的质数

    在这个任务中,我们将探讨如何使用Java来打印出100以内的所有质数。 首先,我们需要了解找到质数的基本算法。一种常见的方法是“埃拉托斯特尼筛法”(Sieve of Eratosthenes),但在这里,由于范围较小(1到100),...

    java随机生成数字和字母

    本文将通过一个简单的示例程序来介绍如何使用Java生成随机的字母。 #### 二、基础知识 在开始之前,我们需要了解以下几个基础概念: - **`java.util.Random`类**:Java中的`Random`类提供了一种方式来生成伪随机数...

    Java2上机实践1初识java

    在本实践课程“Java2上机实践1初识java”中,我们将深入探索Java编程的基础概念,通过一系列有趣的实例来加深理解。这个压缩包包含了实验1的相关材料,旨在引导我们逐步掌握Java语言的核心特性。 首先,我们要从"猜...

    java打印可对齐的任意层数的杨辉三角形

    Java打印可对齐的任意层数的杨辉三角形是一个典型的编程问题,它涉及到递归、数组和控制流等基础知识。杨辉三角形,又称帕斯卡三角形,是数学中一个有趣的图形,每一行的数字是上一行相邻两个数字之和。在编程中,...

    java用线程两种方式

    在这个main方法中,程序通过两种方式创建了两个线程:一个打印1到1000之间的所有奇数,另一个打印所有偶数。通过使用while循环,程序会持续运行直到两个线程都完成了它们的任务。 总结来说,Java通过两种方式提供了...

    多线程 打印1-99,100-199

    根据实验需求,我们需要创建两个子线程,分别打印从 1 到 99 和从 100 到 199 的数字,并且这两个线程需要交替打印数字。 **3.1 创建打印线程** 首先,我们创建两个类 `Test1` 和 `Test2` 来代表两个子线程,它们...

    兰州大学马俊java实验1

    这个数列的每一个数字是前两个数字的和,通常以0和1作为起始项。数列的前几项是0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...。Fibonacci数列在计算机科学中有着广泛的应用,比如算法设计、数据分析、图形学等。 在Java中...

    用java写的模拟彩票 随机选号

    `main`方法展示了如何创建一个`Lottery`实例并打印出随机生成的号码。 这个项目可以帮助初学者理解Java类的创建、对象的实例化、随机数生成以及集合类的使用。对于更高级的开发者,还可以扩展这个项目,例如添加...

    用Java编译一个计算器

    本教程将详细介绍如何使用Java编写一个简单的计算器,实现基本的加、减、乘、除功能,这对于初学者来说是一个很好的学习项目。 首先,我们需要了解Java的基础语法和面向对象编程的概念。在Java中,每个程序都是由一...

    java实现Fibonacci数列

    根据给定文件的信息,我们可以详细地探讨如何使用Java来实现Fibonacci数列,并通过具体的代码示例来深入了解这一主题。 ### Java实现Fibonacci数列 #### 1. Fibonacci数列简介 Fibonacci数列是一系列数字,其中每...

    java打印100以内的素数

    Java打印100以内的素数是一个常见的编程练习,它涉及到基础的算法设计和Java编程技巧。素数是大于1的自然数,除了1和它自身外,不能被其他自然数整除的数。在Java中,我们可以通过一系列步骤来实现这个功能。 首先...

    java开发技术调用rendom函数,随机生成32位不重复的字符

    在main方法中,我们使用了一个循环来生成50个32位随机字符串,然后将生成的随机字符串打印出来。 四、优点和缺点 使用Random函数生成随机数的优点是非常简单方便,代码量少,效率高。但是,使用Random函数生成...

    文曲星游戏-猜数字JAVA代码.

    ### 文曲星游戏-猜数字JAVA代码解析 #### 背景介绍 “猜数字”是一种经典的思维训练游戏,尤其在学生群体中非常流行。玩家需要根据系统随机生成的一个四位数(每位数字不重复),通过猜测尝试找出这个数字。每猜一...

Global site tag (gtag.js) - Google Analytics