Java递归基础案例——阶乘

简介: Java递归基础案例——阶乘

阶乘的案例非常的小所以更好理解。


package Action;
public class test {
  public static void main(String[] args) {
  //计算10的阶乘
  //这次由于只要最终结果,故而直接调用输出即可
  //无论多少次循环, 最终值有一个返回值
  System.out.println(f(10));;
  }
  public static long f(int n) {
  if (n == 1) { // 递归终止条件
    return 1; // 由于是递归,故而1的时候就结束了
  }
  return n * f(n - 1); // 相同重复逻辑,缩小问题的规模
  }
}


输出数据


3628800


正确。


那么换个方法测试一下:


package Action;
public class test {
  public static void main(String[] args) {
  int sum=1;//从1开始计算,如果是0那就结束了
  //循环10次,不能从0开始,所以i<=10
  for (int i = 1; i <= 10; i++) {
    sum*=i;//累计就行了
  }
  System.out.println(sum);
  }
}

输出结果


3628800


二次校验,正确。


希望此案例能让大家更加加深一步对递归的理解。


相关文章
|
1月前
使用ueditor实现多图片上传案例——实体类(Shopping.java)
使用ueditor实现多图片上传案例——实体类(Shopping.java)
18 0
|
30天前
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
21 1
|
23天前
|
SQL 设计模式 安全
Java单例模式几种写法以及代码案例拿来直接使用
Java单例模式几种写法以及代码案例拿来直接使用
31 0
|
30天前
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
15 1
|
1月前
|
Java 数据库连接 mybatis
mybatis简单案例源码详细【注释全面】——实体层(User.java)
mybatis简单案例源码详细【注释全面】——实体层(User.java)
13 0
|
6天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
22天前
|
搜索推荐 Java
Java基础(快速排序算法)
Java基础(快速排序算法)
23 4
|
1月前
|
Java 数据库连接 mybatis
mybatis简单案例源码详细【注释全面】——Utils层(MybatisUtils.java)
mybatis简单案例源码详细【注释全面】——Utils层(MybatisUtils.java)
13 0
|
1月前
|
Java 数据库连接 mybatis
mybatis简单案例源码详细【注释全面】——测试层(UserMapperTest.java)
mybatis简单案例源码详细【注释全面】——测试层(UserMapperTest.java)
9 0
|
1月前
|
Java 数据库连接 mybatis
mybatis简单案例源码详细【注释全面】——实体层(Role.java)
mybatis简单案例源码详细【注释全面】——实体层(Role.java)
7 0