Fibonacci Series @annotation.tailrec

匿名 (未验证) 提交于 2019-12-03 00:30:01
object Adventure4 {    def fib(n: Int): Int = {     @annotation.tailrec     def localFib(nth: Int, lastResult: Int, nextToLastResult: Int): Int = {       if (nth == 1) {         0       } else if (nth == 2) {         1       } else if (nth <= 3) {         lastResult + nextToLastResult       } else {         localFib(nth - 1, lastResult + nextToLastResult, lastResult)       }     }      localFib(n, 1, 0)   }    def main(args: Array[String]): Unit = {     for (i <- 1 to 30) {       println(s"$i : ${fib(i)}")     }   }  }
"C:\Program Files\Java\jdk1.8.0_144\bin\java" "-javaagent:D:\IntelliJ IDEA\IntelliJ IDEA 2017.3.2\lib\idea_rt.jar=51963:D:\IntelliJ IDEA\IntelliJ IDEA 2017.3.2\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_144\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\rt.jar;E:\Framework\ScalaLand\target\scala-2.12\test-classes;D:\JavaDev\.sbt\boot\scala-2.12.6\lib\scala-library.jar;D:\JavaDev\.ivy2\cache\com.google.code.gson\gson\jars\gson-2.8.5.jar" Adventure4 1 : 0 2 : 1 3 : 1 4 : 2 5 : 3 6 : 5 7 : 8 8 : 13 9 : 21 10 : 34 11 : 55 12 : 89 13 : 144 14 : 233 15 : 377 16 : 610 17 : 987 18 : 1597 19 : 2584 20 : 4181 21 : 6765 22 : 10946 23 : 17711 24 : 28657 25 : 46368 26 : 75025 27 : 121393 28 : 196418 29 : 317811 30 : 514229  Process finished with exit code 0
4	1 : 0	1 + 0	3 3	2 : 1	1 + 1	4 2	3 : 1	2 + 1	5 1	4 : 2	3 + 2	6



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!