`
buaixianchen
  • 浏览: 24109 次
  • 性别: 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

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

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

    编程练习一.pdf

    在所提供的内容中,我们可以...这些算法问题不仅在编程练习中常见,也是初学者掌握基础编程技能和逻辑思维能力的重要手段。通过完成这些练习题,可以加深对条件判断、循环结构以及数组操作等基础编程概念的理解和应用。

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

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

    Get清风数控铣床笑脸、五角星、八卦程序.pdf

    * 编程练习三:使用端面铣刀铣处上表面,对到,建立工作坐标系G54,选用2号刀位的φ10立铣刀。 这些编程实例展示了数控铣床编程的基本概念和技术,包括工作坐标系设置、刀具选择、运动控制指令等方面。 6. 数控...

    C++编程练习题及答案

    C++编程练习题及答案 本资源提供了一系列C++编程练习题,涵盖了多个领域,包括数学运算、字符串处理、数组操作等。这些练习题可以帮助程序员提高编程技能,熟悉C++语言的使用。 一、简单问题: 1. 编程求下列式子...

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

    C++primer-plus第6版中文版编程练习答案汇总 本资源摘要信息是对C++primer-plus第6版中文版编程练习答案的总结,涵盖了C++语言的基础知识和编程实践。 第二章:开始学习C++ 本章节主要介绍了C++语言的基本知识,...

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

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

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

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

    Python编程练习与解答.pptx

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

    POINTERS ON C 第八章编程练习8

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

    C语言编程练习.pdf

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

Global site tag (gtag.js) - Google Analytics