AJ034 方法的递归调用

  递归调用 (Recursion Algorithm),是一种特殊的调用形式,指的是方法自己调用自己的形式,递归操作的时候必须满足以下条件:
· 递归调用必须有结束条件。
· 每次调用的时候都需要根据需求改变传递的参数内容。

例73:实现 1~100数字的累加

public class JavaDemo068 {
	public static void main(String[] args) {
		System.out.println(sum(100));// 1~100的累加
	}

	/**
	 * 数字的累加操作,传入一个数据累加操作的最大值,而后每次进行数据的递减,将一直累加到计算数据为1
	 * 
	 * @param num 要进行累加的操作
	 * @return 数据的累加结果
	 */
	public static int sum(int num) {// 最大的内容
		if (num == 1) {// 递归的结束调用
			return 1;// 最终的结果返回1
		}
		return num + sum(num - 1);// 递归调用
	}
}

例74:计算 1!+2!+…+90!

public class JavaDemo069 {
	public static void main(String[] args) {
		System.out.println(sum(90));// 实现阶乘操作
	}

	/**
	 * 实现阶乘的累加操作,根据每一个数字进行阶乘操作
	 * 
	 * @param num 要处理的数字
	 * @return 指定数字的阶乘结果
	 */
	public static double sum(int num) {
		if (num == 1) {// 递归结束条件
			return factorial(1);// 返回1的阶乘
		}
		return factorial(num) + sum(num - 1);// 保存阶乘结果
	}

	/**
	 * 定义方法实现阶乘计算
	 * 
	 * @param num 根据传入的数字实现阶乘
	 * @return 阶乘结果
	 */
	public static double factorial(int num) {
		if (num == 1) {// 定义阶乘结束条件
			return 1;// 返回 1*1的结果
		}
		return num * factorial(num - 1);// 递归调用
	}
}

032至034总结:
1、方法是一段可重复调用的代码段。
2、方法的重载:方法名称相同,参数的类型或个数不同,则此方法被称为重载。
3、方法递归调用指的是本方法的自身重复执行,在使用递归调用时一点要设置好方法的结束条件,否则就会出现内存溢出问题,造成程序的中断。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章