Scala 递归和尾递归

复制代码
 1 package com.atguigu.function
 2 
 3 object Recursion {
 4   def main(args: Array[String]): Unit = {
 5     // 阶乘
 6     // 递归算法
 7     // 1) 方法调用自身
 8     // 2) 方法必须要有跳出的逻辑
 9     // 3) 方法调用自身时,传递的参数应该有规律
10     // 4) scala 中的递归必须声明函数返回值类型
11     println("递归 :"+test(5))
12     println("尾递归:"+tailFact(5))
13   }
14   //
15   def test(i : Int) : Int = {
16     if (i == 1) {
17       1     //退出基准
18     } else {
19       i * test(i - 1)
20     }
21   }
22 
23   //尾递归调用
24   def tailFact(n:Int ):Int = {
25     def loop(n: Int, currRes: Int): Int = {
26       if (n == 0) {
27         return currRes
28       }
29       loop(n - 1, currRes * n)
30     }
31     loop(n, 1)
32   }
33 
34 }
复制代码

 

posted @   靠谱杨  阅读(57)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2021-01-18 Android开发 活动activity

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示