package algorithmimport java.io.File RecursiveApp { def main(args: Array[String]): Unit = { """ |递归的使用:适合于树形结构的遍历 |比较递归方式和循环方式的区别 """.stripMargin var s0 = System.currentTimeMillis() val res: Int = fabonacciNumber(30) println(res) println("recuise ops cost time "+(System.currentTimeMillis()-s0)/100+"s") var s1 = System.currentTimeMillis() println(fabonacci_ori(30)) println("original ops cost time "+(System.currentTimeMillis()-s1)/100+"s") val path = "C:\Users\Administrator\Desktop\test\NIFI" val file = new File(path) getFileList(file) } /** * 斐波那契数的递归实现 * @param n * @return */ def fabonacciNumber(n:Int):Int={ if(n==1||n==2){ return 1 }else{ fabonacciNumber(n-1) + fabonacciNumber(n-2) } } /** * 斐波那契数的循环实现 * @param n * @return */ def fabonacci_ori(n:Int):Int={ var num1 = 1 var num2 =1 var fac = 0 for(i <- 2 until(n)){ fac = num1 + num2 num1 = num2 num2 = fac } fac } /** * 使用递归方式遍历某个文件名称信息 * @param file */ def getFileList(file:File){ val files: Array[File] = file.listFiles() for(i <- 0 until(files.length)){ if(files(i).isFile()){ println(files(i).getName()) }else{ getFileList(files(i)) } } }} 继续阅读与本文标签相同的文章
上一篇 :
scala :冒泡排序
下一篇 :
scala 两个Map 集合合并
-
如何简洁实现游戏中的AI
2026-05-25栏目: 教程
-
如何快速搭建一个简单的塔防小游戏
2026-05-25栏目: 教程
-
一个小小的C++游戏引擎
2026-05-25栏目: 教程
-
你的Redis有类转换异常么
2026-05-25栏目: 教程
-
Redis 基础数据结构
2026-05-25栏目: 教程
