Java递归基础案例——阶乘

举报
红目香薰 发表于 2022/02/07 23:54:05 2022/02/07
【摘要】 阶乘的案例非常的小所以更好理解。 package Action; public class test { public static void main(String[] args) { //计算10的阶乘 //这次由于只要最终结果,故而直接调用输出即可 //无论多少次循环, 最终值有一个返回值 System.out.prin...

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


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

输出数据

3628800

正确。

那么换个方法测试一下:


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

输出结果

3628800

二次校验,正确。

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

文章来源: laoshifu.blog.csdn.net,作者:红目香薰,版权归原作者所有,如需转载,请联系作者。

原文链接:laoshifu.blog.csdn.net/article/details/122793734

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。