From 0f80629829372c90e2c16d2ec4c691a534dc93f8 Mon Sep 17 00:00:00 2001 From: fredrikr79 Date: Tue, 14 Oct 2025 12:19:01 +0200 Subject: [PATCH] scp1: finish task 1 --- .../part1/src/main/scala/Main.scala | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 scala_project_2025/part1/src/main/scala/Main.scala diff --git a/scala_project_2025/part1/src/main/scala/Main.scala b/scala_project_2025/part1/src/main/scala/Main.scala new file mode 100644 index 0000000..c00b3ca --- /dev/null +++ b/scala_project_2025/part1/src/main/scala/Main.scala @@ -0,0 +1,31 @@ +import scala.annotation.tailrec + +@main def main(): Unit = + // task 1 a) + val values = new collection.mutable.ArrayBuffer[Int] // immutable pointer + for (i <- 1 to 50) + values.append(i) + + println(values) + println(iterative_sum(values.toArray)) + println(recursive_sum(values.toArray)) + println((0 to 10).map(fibonacci)) + +// task 1 b) +def iterative_sum(numbers: Array[Int]): Int = + var result = 0 + for (num <- numbers) + result += num + return result + +// task 1 c) +def recursive_sum(numbers: Array[Int]): Int = + @tailrec def inner(numbers: Array[Int], accumulator: Int): Int = + if numbers.length <= 0 then accumulator + else inner(numbers.tail, numbers.head + accumulator) + inner(numbers, 0) + +// task 1 d) +def fibonacci(n: Int): BigInt = + if n <= 1 then BigInt(1) + else fibonacci(n - 1) + fibonacci(n - 2)