`
buaixianchen
  • 浏览: 24289 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

编程练习(三)

阅读更多

题目:一个组数:122345这6个数,打印出它所有可能的组合;要求4不能在第3位,3和5不能相连

public class ComboTest {
	public static void main(String... args) {
		int[] inArrays = {1, 2, 2, 3, 4, 5};
		int[] outArrays = new int[inArrays.length];
		go(inArrays[0], 1, inArrays, outArrays);
	}
	
	public static void go(int preNum, int level, int[] inArrays, int[] outArrays) {
		List<Integer> inList = new ArrayList<Integer>();
		for (int i = 0; i < inArrays.length; i++) {
			if (inList.contains(inArrays[i])) continue;
			if (level == 4 && inArrays[i] == 3) continue;
			if ((preNum == 3 && inArrays[i] == 5) 
					|| (preNum == 5 && inArrays[i] == 3)) 
				continue;
			outArrays[level - 1] = inArrays[i];
			inList.add(inArrays[i]);
			if (level == outArrays.length) {
				System.out.println(Arrays.toString(outArrays));
			} else {
				go(inArrays[i], level + 1, createNewArray(inArrays, i), outArrays);
			}
		}
	}

	private static int[] createNewArray(int[] inArrays, int index) {	
		int[] newArrays = new int[inArrays.length - 1];
		int newIndex = 0;
		for (int i = 0; i < inArrays.length; i++) {
			if (i == index) continue;
			newArrays[newIndex] = inArrays[i];
			newIndex++;
		}
		return newArrays;
	}
}

 

分享到:
评论

相关推荐

    算法导论及其编程练习

    《算法导论及其编程练习》是一本深入探讨算法理论与实践的教材,旨在提升编程者对算法的理解和应用能力。该资源包含多个章节,每个章节都聚焦于特定的算法思想和方法,通过丰富的编程练习来巩固学习成果。下面将详细...

    C++编程练习题大全(带答案)

    C++编程练习题大全 本资源为C++学者入门实用资料,提供了多种编程练习题和相应的答案,涵盖了基本的编程概念和数据结构。通过这些练习题,读者可以提高自己的编程能力和解决问题的思路。 1. factorial_sum 本题目...

    Java课后编程练习题答案

    在学习Java的过程中,编程练习是巩固知识、提升技能的关键环节。"Java课后编程练习题答案"提供了对这些练习题的解答,帮助学习者检查自己的理解和解决方法。 一、Java基础 Java的基础包括语法、数据类型、变量、...

    Java面向对象编程练习题.pdf

    Java面向对象编程练习题 本资源摘要信息涵盖了 Java 面向对象编程的基础知识,通过三个练习题,展示了 Java 编程语言的基本概念和应用。 练习题 01: 类的成员变量 本练习题展示了 Java 中类的成员变量的概念。类 ...

    java语言程序设计基础篇课后编程练习答案

    本资源提供的"java语言程序设计基础篇课后编程练习答案"是一个非常宝贵的参考资料,可以帮助学习者检验自己的学习成果,理解并巩固Java编程的基本概念和技术。 在Java编程中,变量是存储数据的容器,分为基本数据...

    50道JAVA基础编程练习题

    Java 基础编程练习题汇总 本资源提供了 50 道 Java 基础编程练习题,涵盖了 Java 编程的多个方面,包括数据类型、运算符、控制结构、函数、数组、字符串等。这些练习题可以帮助初学 Java 编程的开发者更好地理解 ...

    python编程练习题和答案.pdf

    Python 编程练习题和答案 Python 是一种流行的高级编程语言,广泛应用于Web开发、数据分析、人工智能等领域。作为一名 Python 开发者,了解 Python 的基本语法和编程技巧是非常重要的。本资源汇集了一些常见的 ...

    C++编程练习题大全(带答案).pdf

    根据提供的文件内容,我们可以提取出以下知识点: 1. C++编程基础: ...以上知识点涵盖了C++编程中的基础概念、编程技巧、面向对象编程、算法实现等多个方面,旨在通过练习题加深对C++编程的理解和掌握。

    项目三:面向对象编程练习.pdf

    项目三:面向对象编程练习.pdf

    C++-primer-plus(第6版)中文版-编程练习答案(word版).pdf

    本文将针对该书的第二章和第三章的编程练习题及其答案进行详细解析,帮助读者更好地把握C++编程的基础内容。 在第二章“开始学习C++”中,学习者将接触到C++语言的基本组成部分。本章节的练习题旨在巩固学习者对...

    C++编程练习题及答案

    在这一领域,编程练习题不仅是检验学习成果的试金石,也是提高解决实际问题能力的有效工具。本文将详细介绍一系列C++编程练习题及其答案,内容涉及数学运算、字符串处理、数组操作等多个方面,旨在帮助程序员提高...

    design-algorithms-1:算法编程练习

    #编程练习##For 算法:设计与分析,第 1 部分(Tim Roughgarden 教授) ###1:InversionCounter 应用分治递归算法(基于合并排序)来计算未排序数组中的反转。 ###2:QuickSorter 使用 QuickSort 对数组进行排序,并...

    Python编程练习题,用Python写的各种编程练习题.zip

    【Python编程练习题详解】 在Python编程领域,不断练习是提升技能的关键。"Python编程练习题,用Python写的各种编程练习题.zip" 这个压缩包文件提供了丰富的实践机会,帮助学习者巩固基础,理解Python语言的核心...

    大一python编程题库和答案-Python编程练习题.pdf

    这份题库旨在帮助初学者巩固Python编程基础,通过一系列练习题来提高编程能力。下面将详细解释其中涉及的知识点: 1. **整除与条件判断**: 在第一个题目中,要求找出所有能被17整除的三位数。这里使用了`range()`...

    C++ Primer Plus 编程练习源码工程 第15章

    《C++ Primer Plus 编程练习源码工程 第15章》是针对C++初学者的一个宝贵资源,它包含了作者LeonardoLiuwenbo在学习《C++ Primer Plus》这本经典教材时所做的编程练习。这个章节聚焦于C++语言的深入特性,旨在通过...

    Python编程练习题(100例)

    Python编程练习题(100例) 题目 1 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 题目...

    Python编程练习与解答.pptx

    《Python编程练习与解答》是一本非常实用的Python编程书籍,它不仅涵盖了Python编程的基础知识和常用数据结构,还详细介绍了Python的文件操作、异常处理、函数式编程和面向对象编程等相关知识,同时也介绍了Python...

    编程练习素材

    编程练习素材,正是为那些希望通过实践来提升C语言游戏开发技能的编程爱好者准备的。 对于初学者来说,理解C语言在游戏开发中的应用可能稍显困难。然而,通过具体的项目实践,比如制作游戏,他们能够更好地把握编程...

    POINTERS ON C 第八章编程练习8

    回溯法解决N皇后问题,解空间的形式输出结果并输出解个数。VC6.0编译通过。

    C语言编程练习.pdf

    "C语言编程练习.pdf" C语言编程练习.pdf是一个关于C语言编程的练习文件,旨在帮助程序员提高C语言编程技能。本文件涵盖了C语言的基本概念、变量、数据类型、运算符、控制结构、函数、数组、指针等多个方面的知识点...

Global site tag (gtag.js) - Google Analytics