`

递归求解集合

    博客分类:
  • Java
阅读更多
字符串翻转
  /**
	 * 将字符串翻转
	 * 
	 * @param str
	 * @return
	 */
	public static String reverceString(String str) {
		if (null == str || str.length() <= 1) {
			return str;
		}
		return reverceString(str.substring(1)) + str.charAt(0);
	}

计算a+aa+aaa+……+aa…a(n个a)的值,n和a的值由键盘输入
/**
	 * 使用递归操作
	 * 计算a+aa+aaa+……+aa…a(n个a)的值,n和a的值由键盘输入
	 * @param a
	 * @param n
	 * @return
	 */
	public static int sumOfMultis1(int a, int n) {
		if (n == 1 || n == 0)
			return getNum2(n) * a;
		return sumOfMultis1(a, n - 1) + getNum2(n) * a;
	}
	public static int getNum2(int n) {
		if (n == 1 || n == 0)
			return getNum(n);
		return getNum2(n - 1) + getNum(n);
	}
	public static int getNum(int n) {
		if (n == 0)
			return 0;
		if (n == 1)
			return 1;
		return getNum(n - 1) * 10;
	}


/**普通的计算【建议使用,nnd面试的时候非要让递归】
	 * 计算a+aa+aaa+……+aa…a(n个a)的值,n和a的值由键盘输入
	 * 
	 * @param str
	 * @return
	 */
	public static int sumOfMultis(int a, int n) {
		int a1 = a;
		int sum = 0;
		int i = 1;
		while (i <= n) {
			if (i != 1) {
				a = (a * 10) + a1;
			}
			sum += a;
			i++;
		}
		return sum;
	}
分享到:
评论

相关推荐

    递归回溯法求解整数线性规划及MATLAB实现.pdf

    线性规划问题的可行解集合称为可行域,目标是在这个区域内找到最优解。 递归回溯法结合了分支和回溯的思想。分支是将大问题分解为多个子问题,而回溯则是当子问题无法满足约束时返回上一层继续探索其他分支。这种...

    N选M的所有组合(递归与非递归实现)

    4. 对于每个未选择的元素(从当前索引到N-1),将其添加到选择集合,并递归调用函数,传入更新后的选择集合和下一个未选择元素的索引。 5. 在递归返回时,将当前元素从选择集合中移除,回溯到上一步。 非递归方法,...

    C#递归算法经典示例

    基本情况是问题的最简单形式,可以直接求解,而递归情况则会继续调用自身以解决更复杂的情况。 在描述的示例中,我们处理的是TreeView控件,它通常用于展示层级关系的数据,如文件系统目录结构。每个TreeNode代表一...

    递归与分治--acm竞赛资料

    1053 - Set Me可能涉及到集合的运算,可以通过递归或分治策略求解集合的交集、并集、差集等。1045 - Bode Plot则可能与信号处理相关,可能需要利用分治的思想处理复杂的信号分析问题。 1010 - STAMPS问题可能是一个...

    求一个集合子集的算法示例

    求一个集合子集的算法示例, 用两种方法解,一种是基于回溯的递归求解,一种基于位域映射.

    递归的资料大全,教材、文档、代码

    - 分治是一种解决问题的算法设计策略,它将大问题分解为相互独立的子问题,然后对每个子问题递归求解,最后合并结果。 - 应用场景包括排序算法(如快速排序、归并排序)、查找问题(如二分查找)等。 4. **解决...

    迭代与递归算法

    迭代通常涉及对数组、集合或数据结构的遍历,或者进行数学计算直到满足停止条件。例如,在迭代法求平方根的文档中,可能详细介绍了如何通过不断逼近目标值来计算一个数的平方根。这种方法简单直观,易于理解和实现,...

    算法设计与分析 递归与分治策略.docx

    本实验报告主要探讨了三种使用递归策略的算法:Ackerman函数实现、大数划分以及数据集合的排列组合。 1. **Ackerman函数实现** Ackerman函数是一个经典的双递归函数,其定义如下: - 当n=1且m=0时,A(n, m)=2。 ...

    递归求全排列.rar 递归求全排列.rar

    在递归求解全排列的过程中,我们通常遵循以下步骤: 1. **基础情况**:当需要排列的元素只剩下一个时,那么这个元素就是唯一的一种排列,返回它。 2. **递归步骤**:对于每个剩余的元素,将其放在当前已排序序列的...

    对于任意给定的输入串(词法记号流)进行语法分析,递归下降方法和非递归预测分析方法可以任选其一来实现。

    可以参考书上介绍的同步记号集合来处理。 可能的出错情况:idid*id, id**id, (id+id, +id*+id …… 4. 输入串以#结尾,输出推导过程中使用到的产生式。例如: 输入:id+id*id# 输出:E ® TE ¢ T ® FT ¢ F ...

    C++实现数独游戏的求解

    数独是一种广受欢迎的逻辑推理游戏,其基本规则是通过填...理解这些知识点后,你可以阅读源代码,进一步了解作者是如何实现递归求解数独的具体步骤。通过调试和分析代码,你将能深入掌握数独求解的逻辑和C++编程技巧。

    上下文无关文法 求first集合

    3. 这个过程需要多次迭代,直到First集合不再变化为止,因为可能存在递归推导的情况。 例如,对于文法G=(V, Σ, R, S),其中V是非终结符集,Σ是终结符集,R是产生规则集,S是起始符号,我们可以用以下方式求解...

    数据结构与问题求解Java语言

    本书分为四个部分:第一部分讨论适合大多数应用的集合类API的一个子集,并覆盖基本的算法分析技术、递归和排序算法;第二部分包含了一组集合类API的应用实例;第三部分讨论数据结构的实现;第四部分描述了高级的数据...

    哈工大集合论与图论课件

    3. 动力系统和迭代:通过集合上的函数操作,如迭代和递归,理解集合动态变化的规律。 4. Zermelo-Fraenkel集合论(ZF公理):集合论的基础公理系统,包括选择公理等。 5. 类的概念:超出了集合范畴的数学对象,如...

    c++二叉树法求集合幂集

    在编程领域,特别是离散数学和算法设计中,求解集合的幂集是一个常见的问题。幂集是指一个集合的所有子集构成的新集合,包括空集和自身。在本例中,我们将探讨如何使用C++通过二叉树法来实现这个功能。 首先,我们...

    城市遍历求解问题

    邻接表则是一个链表的集合,每个链表代表一个城市及其可以直接到达的其他城市。 4. **Java设计模式** 在这个课程设计中,可能需要应用设计模式来使代码更具可读性和可维护性。例如,工厂模式可以用于创建城市和边...

    表达式求解 数据结构

    表达式求解是计算机科学中一个基础性问题,该问题的解决方案有多种,如递归下降解析、LR解析、算符优先算法等。在这里,我们将讨论基于算符优先算法的表达式求解方法,该方法使用顺序栈和运算符栈来实现实数内的加减...

    递归案例分享

    一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,...

    递归算法的优缺点.pdf

    线性规划是一种优化问题,目标是在满足一组线性约束条件下,求解目标函数的最大值或最小值。线性规划基本定理表明,如果问题有最优解,那么一定存在一个基本可行解。单纯形算法是解决线性规划问题的经典方法,它通过...

    python中的函数递归和迭代原理解析

    一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算...

Global site tag (gtag.js) - Google Analytics