`

递归求解集合

    博客分类:
  • 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;
	}
分享到:
评论

相关推荐

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

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

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

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

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

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

    递归案例分享

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

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

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

    深究递归和迭代的区别、联系、优缺点及实例对比

    递归的能力在于用有限的语句来定义对象的无限集合。  使用递归要注意的有两点:  1)递归是在过程或函数里面调用自身;  2)在使用递归时,必须有一个明确的递归结束条件,称为递归出口。  递归分为两个...

    算法分析实验3

    应用动态规划算法的最优子结构性质和子问题重叠性质求解此问题。分析动态规划算法的基本思想,应用动态规划策略写出算法及相应的程序,求解此题。要读懂读透A[i,j],A[1,n]=A[1,k] ×A[k+1,n],m[i][j],s[i][j]各式...

    Java递归原理解析

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

    大连理工大学-编译技术-第三次上机-求first集

    目的:熟练掌握自上而下的语法分析方法,并能用程序实现。 要求: 例如.... E TE E + TE | T FT T * FT | F (E) | id 编写First函数,实现其...2编写消除左递归的算法。 3编写Follow函数,实现其求解过程

    基于JS递归函数细化认识及实用实例(推荐)

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

    -Artificial-Intelligence-Maze-Solver:实施递归以解决带有路径集合的任何迷宫

    人工智能迷宫求解器实施递归以解决带有路径集合的任何迷宫

    使用C语言解决字符串全排列问题

    这是典型的递归求解问题,递归算法有四个特性: 必须有可达到的终止条件,否则程序陷入死循环 子问题在规模上比原问题小 子问题可通过再次递归调用求解 子问题的解应能组合成整个问题的解 对于字符串的排列问题...

    C语言程序源代码(大集合).rar

    C语言程序源代码(大集合).rar 实际只有139个,其余部分丢失! 第一部分 基础篇 001 第一个C程序 002 运行多个源文件 003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 自增/自...

    数据结构与算法分析_java语言描述

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

    220个C语言程序源代码集合.zip

    014 求解二维数组的最大/最小元素 015 利用数组求前n个质数 016 编制万年历 017 对数组元素排序 018 任意进制数的转换 019 判断回文数 020 求数组前n元素之和 021 求解钢材切割的最佳订单 022 通过指针比较...

    论文研究-加权分治与皇冠技术求解最大加权独立集.pdf

    皇冠分解技术是一种算法优化技术,通过找出一个称为皇冠的特殊非空独立集,并将该独立集和它的邻接集合删除,得到一个不含皇冠的子图,从而降低原问题规模,降低算法时间复杂度。针对加权图的独立集问题相关性质设计...

    子集合问题(c++实现)

    本程序针对“子集和问题”构造了一棵n叉树,采用深度优先算法,实现了对此n叉树的非递归遍历。 下载包中附求解问题算法的伪代码、图、源程序等等。

    编译技术第三次上机.zip

    2编写消除左递归的算法。 3编写Follow函数,实现其求解过程。 运行结果:非终结符 First集合 ------------------------- E | { id, ( } ------------------------- E' | { +, # } ------------------------- F | { ...

    传感器饱和系统的集合成员过滤

    本文解决了在存在未知但有界过程和测量噪声的情况下传感器饱和的一类离散时变系统的集合... 开发了一种递归算法,用于通过求解时变线性矩阵不等式来计算保证包含真实状态的椭球。 仿真结果证明了所提出方法的有效性。

Global site tag (gtag.js) - Google Analytics