Factorial/Fibonachi/ReverseString/Max in array

Run Settings
LanguageScala
Language Version
Run Command
object Main extends App { //Factorial def findFactorialRecursive(number: Int):Long = { if (number == 0) return 1 return number * findFactorialRecursive(number-1) } def findFactorialIterative(number: Int): Long = { var answer = 0 answer } println(findFactorialRecursive(5)) println(findFactorialIterative(5)) //Fibonachi def findFibonachiNumberIterative(number: Int): Seq[Int] = { //O(n) var arr = Array(0, 1) for (i <- 2 to number) { arr = arr :+ (arr(i - 2) + arr(i -1)) } arr } def findFibonachiNumberRecursive(number: Int): Int = { //O(2^n) if (number < 2) return number return findFibonachiNumberRecursive(number-1) + findFibonachiNumberRecursive(number-2) } def fib(x: Int): BigInt = { def fibHelper(x: Int, prev: BigInt = 0, next: BigInt = 1): BigInt = x match { case 0 => prev case 1 => next case _ => fibHelper(x - 1, next, (next + prev)) } fibHelper(x) } // def findFibonachiRecursive(number: Int):Seq[Int] = { // if (number < 1 ) return Seq(0) // return findFibonachiRecursive(number-1) :+ findFibonachiNumberRecursive(number) // } println(fib(4)) //Max of int in List def max(ints: List[Int]): Int = { def maxAccum(ints: List[Int], theMax: Int): Int = { ints match { case Nil => theMax case x :: tail => val newMax = if (x > theMax) x else theMax maxAccum(tail, newMax) } } maxAccum(ints, 0) } println(max(List(0,2,45,4,3,7))) //Reverse string def reverseString(s: String): String = { if (s.isEmpty) "" else reverseString(s.tail) + s.head } println(reverseString("Dima")) }
Editor Settings
Theme
Key bindings
Full width
Lines