关于递推算法的研究

递归基础:程序调用自身的编程技术称为递归(recursion)
递归作为一种算法在程序设计语言中广泛应用
一个过程或函数在其定义或者说明中有直接或间接调用自身的一种方法,
它通常把一个大型复杂的问题层层转化为一个与原问题相似规模较小的问题来求解
递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大滴减少程序的代码量,
递归的能力在于用有限的语句来定义对象的无线集合
一般来说, 递归需要有边界条件,递归前进段和递归返回段
当条件不满足时,递归前进;当边界条件满足时,递归返回。


public static void fun(int n) {
		System.out.println(n);
		if (n<0) {
			return;
		}else{
			fun(n-1);
			System.out.println(n);
		}
		
	}
public static void main(String[] args) {
		fun(2);
	}

上述的运行结果会是什么呢?

答案是

2

1

0

-1

0

1

2

解析:

总结 : 执行到第一个fun(n-1)时,会将会面的syso方法压入方法栈,然后依次往后执行,将syo压入栈中,然后当return 之后,开始从栈中执行syso方法 打印出数值。



发布了49 篇原创文章 · 获赞 5 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/hehe0705/article/details/78672712