字符串翻转
/**
* 将字符串翻转
*
* @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 ...
本书分为四个部分:第一部分讨论适合大多数应用的集合类API的一个子集,并覆盖基本的算法分析技术、递归和排序算法;第二部分包含了一组集合类API的应用实例;第三部分讨论数据结构的实现;第四部分描述了高级的数据...
一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,...
一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算...
递归的能力在于用有限的语句来定义对象的无限集合。 使用递归要注意的有两点: 1)递归是在过程或函数里面调用自身; 2)在使用递归时,必须有一个明确的递归结束条件,称为递归出口。 递归分为两个...
应用动态规划算法的最优子结构性质和子问题重叠性质求解此问题。分析动态规划算法的基本思想,应用动态规划策略写出算法及相应的程序,求解此题。要读懂读透A[i,j],A[1,n]=A[1,k] ×A[k+1,n],m[i][j],s[i][j]各式...
一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序可描述出解题过程所需要的多次重复计算,...
目的:熟练掌握自上而下的语法分析方法,并能用程序实现。 要求: 例如.... E TE E + TE | T FT T * FT | F (E) | id 编写First函数,实现其...2编写消除左递归的算法。 3编写Follow函数,实现其求解过程
一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,...
人工智能迷宫求解器实施递归以解决带有路径集合的任何迷宫
这是典型的递归求解问题,递归算法有四个特性: 必须有可达到的终止条件,否则程序陷入死循环 子问题在规模上比原问题小 子问题可通过再次递归调用求解 子问题的解应能组合成整个问题的解 对于字符串的排列问题...
C语言程序源代码(大集合).rar 实际只有139个,其余部分丢失! 第一部分 基础篇 001 第一个C程序 002 运行多个源文件 003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 自增/自...
本书分为四个部分:第一部分讨论适合大多数应用的集合类API的一个子集,并覆盖基本的算法分析技术、递归和排序算法;第二部分包含了一组集合类API的应用实例;第三部分讨论数据结构的实现;第四部分描述了高级的数据...
014 求解二维数组的最大/最小元素 015 利用数组求前n个质数 016 编制万年历 017 对数组元素排序 018 任意进制数的转换 019 判断回文数 020 求数组前n元素之和 021 求解钢材切割的最佳订单 022 通过指针比较...
皇冠分解技术是一种算法优化技术,通过找出一个称为皇冠的特殊非空独立集,并将该独立集和它的邻接集合删除,得到一个不含皇冠的子图,从而降低原问题规模,降低算法时间复杂度。针对加权图的独立集问题相关性质设计...
本程序针对“子集和问题”构造了一棵n叉树,采用深度优先算法,实现了对此n叉树的非递归遍历。 下载包中附求解问题算法的伪代码、图、源程序等等。
2编写消除左递归的算法。 3编写Follow函数,实现其求解过程。 运行结果:非终结符 First集合 ------------------------- E | { id, ( } ------------------------- E' | { +, # } ------------------------- F | { ...
本文解决了在存在未知但有界过程和测量噪声的情况下传感器饱和的一类离散时变系统的集合... 开发了一种递归算法,用于通过求解时变线性矩阵不等式来计算保证包含真实状态的椭球。 仿真结果证明了所提出方法的有效性。