用递归方法,求10!的阶乘

分析:

  1. f(n) = n * f(n-1)           n != 1        -----        递推公式
  2. f(n) = 1                       n = 1      -----         结束条件

代码:

public class TestDiGui {
public static void main(String[] args) {
System.out.printf("%d! = %s", 10, fac(10));
} static long fac(int n) {
if(n == 1) {
return 1;
}else {
return n * fac(n-1);
}
}
}

代码分析:

当n = 10时,调用f(10),f(10)调用f(9),f(9)调用f(8),....,f(2)调用f(1),f(1)返回1,f(2)返回2 * 1,...,f(8)返回8 * 7 * 6 * 5 * 4 * 3 * 2 * 1,f(9)返回9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1,f(10)返回10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1,结果被printf打印输出

如图:

输出结果:

最新文章

  1. jquery easyui菜单树显示
  2. 构建ceph deb 安装包
  3. ffmpeg-20160816-bin.7z
  4. MultiProvider
  5. Linux下I/O模型
  6. 认识Runtime2
  7. python为什么有私有方法和变量
  8. PHP学习笔记05——面向对象
  9. linux下动态库编译的依赖问题
  10. document模板
  11. 使用jq深入研究轮播图特性
  12. 出现Data Tools 与VS 不兼容问题
  13. --@angularJS--angular与BootStrap3的应用
  14. 【机器学习实战】第13章 利用 PCA 来简化数据
  15. Unity塔防游戏开发
  16. 菜鸟玩云计算之十四:克隆虚拟机及ssh登录的问题
  17. Linux进程管理(第二版) --进程管理命令
  18. mock详解
  19. Linux上Oracle18C 系统表空间大小调整 adjust the system tablespace for oracle18c on linux
  20. excel数据 入库mysql 和 mysql数据 导入excel文件

热门文章

  1. 单例模式、双检测锁定DCL、volatile(转)
  2. Hadoop(HDFS、YARN、HBase、Hive和Spark等)默认端口表
  3. Computer Vision with Matlab
  4. 编写高质量代码改善C#程序的157个建议——建议115:通过HASH来验证文件是否被篡改
  5. sql五大类中的 DTL 数据事务语言
  6. 杂谈之界面设计和UI测试 (一)
  7. scala文件流操作,生成sparkpv,uv作业文件
  8. python字符串字典列表互转
  9. 关于super关键字与继承
  10. mvc4开篇之BundleConfig(1)