Java - 递归
2013-04-09 11:30
211 查看
递归
使用递归首先要找出递归的出口
计算小数字阶乘
package com.itlwc; public class JC { public static void main(String[] args) { System.out.println(compute1(5)); System.out.println(compute2(5)); } /* * 循环方式计算阶乘,计算方式:n!=n*(n-1)*(n-2)...2*1 */ public static int compute1(int number) { int result = 1; for (int i = number; i > 0; i--) { result *= i; } return result; } /* * 递归方式计算阶乘,计算方式:n!=n*(n-1)!,(n-1)!=(n-1)*(n-2)!... */ public static int compute2(int number) { if (number == 1) { return 1; } else { return number * compute2(number - 1); } } }
计算大数字阶乘
package com.itlwc; import java.math.BigDecimal; public class JC { public static void main(String[] args) { System.out.println(compute3(100)); System.out.println(compute4(new BigDecimal(100))); } /* * 循环方式,计算大数字阶乘 */ public static BigDecimal compute3(int number) { BigDecimal bd = new BigDecimal(1); for (int i = 1; i <= number; i++) { bd = bd.multiply(new BigDecimal(i)); } return bd; } /* * 递归方式,计算大数字阶乘 */ public static BigDecimal compute4(BigDecimal number) { if (number.equals(BigDecimal.ONE)) { return BigDecimal.ONE; } else { return number.multiply(compute4(number.subtract(BigDecimal.ONE))); } } }
斐波那契数列 使用递归
package com.itlwc; public class FbnqSl { public static void main(String[] args) { System.out.println(compute(9)); } public static int compute(int number) { if (1 == number || 2 == number) { return 1; } else { return compute(number - 1) + compute(number - 2); } } }
相关文章推荐
- java 递归实现全排序
- Java中函数的递归调用
- 蓝桥杯 基础练习 Sine之舞 Java 递归
- Java实现二分查找--非递归
- java递归调用——判断根目录盘符下的相同后缀名文件的个数
- JAVA解码递归
- java递归求八皇后问题(所有摆放方式)
- Java技术积累递归调用——解析树的基本实现原理
- Java递归(趣味例子)
- java递归方法实现菲波拉契数列问题
- Java的递归方法测试
- java中递归实现复制多级文件夹
- 使用递归将二维资源数据转换成json的例子-java
- [复习] JAVA 遍历目录 (递归调用和非递归)
- java 递归 实现数字的排列组合
- Java递归遍历文件夹
- java 递归详解
- 数据结构二叉树的递归与非递归遍历之java,javascript,php实现可编译(1)java
- java递归输出目录下的所有文件名
- Java(二分查找算法实现,分别使用递归和非递归方式)