亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

kotlin的尾遞歸

標簽:
Kotlin

尾调用的重要性在于它可以不在调用栈上面添加一个新的堆栈帧——而是更新它,如同迭代一般。
尾递归因而具有两个特征: 调用自身函数(Self-called); 计算仅占用常量栈空间(Stack Space)。

kotlin

1. 求和

1.1

tailrec fun ad(n:Int,result:Int=0):Int{   if(n==1) return result+1else return ad(n-1,result+n) }  fun main(args: Array<String>) {
 println(ad(100))

}

1.2

 tailrec fun add(n:Int,result:Int):Int{    if(n==0) return result    else return add(n-1,result+n)
}
  fun main(args: Array<String>) {
println(add(100,0))   }

2.Fibonacci斐波那契数列

2.1

fun main(args: Array<String>) {
tailrec fun f(n:Int, pf:Int=1,ps: Int=1):Int{    if(n<=1) return pf    else return f(n-1,ps,pf+ps)
}
println(f(10))   }

2.2

tailrec fun fcnq(n:Int, pf:Int,ps: Int):Int{if(n<=1) return pfelse return fcnq(n-1,ps,pf+ps)
    }
    fun main(args: Array<String>) {  
    println(fcnq(10,1,1))        }



作者:证始
链接:https://www.jianshu.com/p/400c87a8c632


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消