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