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个,不知道对了没有
分享到:
相关推荐
用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求: "4 "不能在第三位, "3 "与 "5 "不能相连.
3. 修改实验1第2题的程序,添加适当代码,以确保每个数字都恰好只被打印一次。 实验步骤: (1)、创建三个类Counter, Printer,Storage (2)、 创建TestCounter类,在该类中定义main函数,在main函数中定义Storage...
)是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程序,用于输出顺时针旋转的数字方阵。这个方阵的特性是从中心开始,数字按照顺时针方向填充。给定的代码片段是用C++编写的,但我们可以将其转换为Java语言,并解释其工作原理。 ...
- **主方法**:`public static void main(String[] args)` 是Java程序的入口点,所有Java应用程序都必须包含这样一个方法。 - **成员方法**:`static void cfb()` 是类`ChengFaBiao`的一个静态方法,用于生成乘法表...
在编程领域,回文数是一个十分有趣的主题,它是指一个正读反读都能得到相同结果的数字,例如121、12321等。本篇将详细讲解如何使用Java编程语言来实现求解1到1万之间所有回文数的算法。 首先,我们需要理解如何判断...
在这个任务中,我们将探讨如何使用Java来打印出100以内的所有质数。 首先,我们需要了解找到质数的基本算法。一种常见的方法是“埃拉托斯特尼筛法”(Sieve of Eratosthenes),但在这里,由于范围较小(1到100),...
本文将通过一个简单的示例程序来介绍如何使用Java生成随机的字母。 #### 二、基础知识 在开始之前,我们需要了解以下几个基础概念: - **`java.util.Random`类**:Java中的`Random`类提供了一种方式来生成伪随机数...
在本实践课程“Java2上机实践1初识java”中,我们将深入探索Java编程的基础概念,通过一系列有趣的实例来加深理解。这个压缩包包含了实验1的相关材料,旨在引导我们逐步掌握Java语言的核心特性。 首先,我们要从"猜...
Java打印可对齐的任意层数的杨辉三角形是一个典型的编程问题,它涉及到递归、数组和控制流等基础知识。杨辉三角形,又称帕斯卡三角形,是数学中一个有趣的图形,每一行的数字是上一行相邻两个数字之和。在编程中,...
在这个main方法中,程序通过两种方式创建了两个线程:一个打印1到1000之间的所有奇数,另一个打印所有偶数。通过使用while循环,程序会持续运行直到两个线程都完成了它们的任务。 总结来说,Java通过两种方式提供了...
根据实验需求,我们需要创建两个子线程,分别打印从 1 到 99 和从 100 到 199 的数字,并且这两个线程需要交替打印数字。 **3.1 创建打印线程** 首先,我们创建两个类 `Test1` 和 `Test2` 来代表两个子线程,它们...
这个数列的每一个数字是前两个数字的和,通常以0和1作为起始项。数列的前几项是0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...。Fibonacci数列在计算机科学中有着广泛的应用,比如算法设计、数据分析、图形学等。 在Java中...
`main`方法展示了如何创建一个`Lottery`实例并打印出随机生成的号码。 这个项目可以帮助初学者理解Java类的创建、对象的实例化、随机数生成以及集合类的使用。对于更高级的开发者,还可以扩展这个项目,例如添加...
本教程将详细介绍如何使用Java编写一个简单的计算器,实现基本的加、减、乘、除功能,这对于初学者来说是一个很好的学习项目。 首先,我们需要了解Java的基础语法和面向对象编程的概念。在Java中,每个程序都是由一...
根据给定文件的信息,我们可以详细地探讨如何使用Java来实现Fibonacci数列,并通过具体的代码示例来深入了解这一主题。 ### Java实现Fibonacci数列 #### 1. Fibonacci数列简介 Fibonacci数列是一系列数字,其中每...
Java打印100以内的素数是一个常见的编程练习,它涉及到基础的算法设计和Java编程技巧。素数是大于1的自然数,除了1和它自身外,不能被其他自然数整除的数。在Java中,我们可以通过一系列步骤来实现这个功能。 首先...
在main方法中,我们使用了一个循环来生成50个32位随机字符串,然后将生成的随机字符串打印出来。 四、优点和缺点 使用Random函数生成随机数的优点是非常简单方便,代码量少,效率高。但是,使用Random函数生成...
### 文曲星游戏-猜数字JAVA代码解析 #### 背景介绍 “猜数字”是一种经典的思维训练游戏,尤其在学生群体中非常流行。玩家需要根据系统随机生成的一个四位数(每位数字不重复),通过猜测尝试找出这个数字。每猜一...