java中无限递归代码 java递归简单例子

(java)无限递归求教~~~

要求输入一个整数的时候,而我们却输入一个字符或一个字符串,那么它会抛出错误匹配异常,并没有读取你输入的字符串,扫描器在next的时候返回false。在异常中执行递归函数的时候指针始终没有移动,始终在读这个字符串。在异常中读取这个字符串可解决

目前创新互联已为上千余家的企业提供了网站建设、域名、虚拟主机成都网站托管、企业网站设计、西湖网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

java中递归算法是什么?怎么算的?

Java递归算法是基于Java语言实现的递归算法。递归算法是一种直接或者间接调用自身函数或者方法的算法。递归算法实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法表示问题的解。递归往往能给我们带来非常简洁非常直观的代码形式,从而使我们的编码大大简化,然而递归的思维确实跟我们的常规思维相逆的,通常都是从上而下的思维问题,而递归趋势从下往上的进行思维。

二、递归算法解决问题的特点:

【1】递归就是方法里调用自身。

【2】在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。

【3】递归算法代码显得很简洁,但递归算法解题的运行效率较低。所以不提倡用递归设计程序。

【4】在递归调用的过程中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等,所以一般不提倡用递归算法设计程序。

【5】在做递归算法的时候,一定把握出口,也就是做递归算法必须要有一个明确的递归结束条件。这一点是非常重要的。其实这个出口就是一个条件,当满足了这个条件的时候我们就不再递归了。

三、代码示例:

代码执行流程图如下:

此程序中n=5就是程序的出口。

Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

java递归方法

一般递归只实现一个方向的逻辑,把两个方向的逻辑放到一方法里并不好,不容易控制,实现也很麻烦,考虑到维护时的难度请不要在实际项目中使用。

搞了好一会,搞出个这样的输出2N-1行星号,中间最长的一行不重复,如果楼主希望重复中间一行,可以对代码做一点点改动。

/**

* 入口,传入N

*/

public static void printStar(int number){

printStar2(number, number, 1);

}

/**

*

* @param number 给定的N

* @param oldNumber 给定的N

* @param direction 递归时的方向

*/

public static void printStar2(int number,int oldNumber, int direction){

if(number==0)direction++;

String s="";

int i = number;

if(direction==1){

for(;ioldNumber;i++){

s+="*";

}

number--;

}else{

for(;ioldNumber;i++){

s+="*";

}

number++;

if(numberoldNumber){

return;

}

}

printStar2(number,oldNumber,direction);

System.out.println(s);

}

-----------------------------------------------------------------------------------------

运行效果:

printStar(5);

*

**

***

****

*****

****

***

**

*

求一个java递归例子

这个很好写的,代码如下:

private ListDept recursionDept(ListDept ld){

for(int i=0; ild.size(); i++) {

Dept d = ld.get(i)

loop(d);

}

}

private void loop(Dept d) {

ListDept children=service.getChildDept(d.id);

if (children.size() 0) {

d.setChildren(children); // 这里假设子列表属性的名字就是children

for(int j=0; jchidren.size(); j++){

loop(children.get(j);

}

}

}

这个题目对初学者来说比较难的一点是,得想明白要自己建一个递归方法(loop)

一段JAVA的递归代码

下面递归写了一段递归累加到100,每加20个就换行输出。

package zhidao;

public class Digui {

public static int add(int num){

int sum = 0;

StringBuffer sb = new StringBuffer();

if (num = 0) {

return 0;

}else{

if (num == 1) {

sum = sum+1;

}else {

sum = add(num-1)+num;

}

if (num % 20 == 0) {

System.out.println("[index = "+num+" sum = "+sum+"]");

}else {

System.out.print("[index = "+num+" sum = "+sum+"],");

}

}

return sum;

}

public static void main(String[] args) {

add(100);

}

}


当前文章:java中无限递归代码 java递归简单例子
转载注明:http://pwwzsj.com/article/hghpoi.html