From 1a87b1ee6b46f9b9233e3790e0dad69de5bff3c0 Mon Sep 17 00:00:00 2001 From: yenru0 Date: Thu, 23 May 2024 16:51:05 +0900 Subject: [PATCH] complete 1003.kt and configure run.py for zkt --- run.py | 2 +- zeta_kotlin/1003.kt | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 zeta_kotlin/1003.kt diff --git a/run.py b/run.py index 973338b..17dcc90 100644 --- a/run.py +++ b/run.py @@ -44,7 +44,7 @@ class ProblemRunEnum: zeta_kotlin: ProblemRunType = ProblemRunType( name="zeta_kotlin", dir="./zeta_kotlin", - runner="java -jar a.jar -Dfile.encoding=UTF-8 < {input}", + runner="java -jar a.jar -Dfile.encoding=UTF-8", prefix="kt", prerunner="kotlinc-jvm {source} -include-runtime -d a.jar", ) diff --git a/zeta_kotlin/1003.kt b/zeta_kotlin/1003.kt new file mode 100644 index 0000000..d95345a --- /dev/null +++ b/zeta_kotlin/1003.kt @@ -0,0 +1,34 @@ +import kotlin.text.toInt + +operator fun Pair.plus(b: Pair) = Pair(first + b.first, second + b.second) + + +val Mem = Array>(50) { idx -> + if (idx == 0) { + Pair(1, 0) + } else if (idx == 1) { + Pair(0, 1) + } else { + Pair(0, 0) + } +} + +fun getFib(n: Int): Pair { + + val m = Mem[n]; + if (m.first == 0 && m.second == 0) { + Mem[n] = getFib(n - 1) + getFib(n - 2) + return Mem[n] + } else { + return m; + } +} + +fun main() { + val T = readLine()!!.toInt() + for (i in 1..T) { + val N = readLine()!!.toInt() + + println(getFib(N).toList().joinToString(" ")) + } +} \ No newline at end of file