【发布时间】:2016-07-01 12:56:33
【问题描述】:
我知道如何在 java 中计算加泰罗尼亚数,这很简单:
int catalan(int n) {
int res = 0;
// Base case
if (n <= 1) {
return 1;
}
for (int i = 0; i < n; i++) {
res += catalan(i) * catalan(n - i - 1);
}
return res;
}
但我无法想象如何在 Scala 中做到这一点,因为我对它完全陌生。 不使用 var 是否可以做到这一点?
我尝试了以下方法,但它不起作用:
object Catalan {
def catalan: Int => Int = n => {
val res = 0
val i = 0
if (n <= 1) 1
else for (i <- 0 to n-1) res += catalan(i) * catalan(n - i - 1)
}
}
提前致谢:)
【问题讨论】:
标签: java scala recursion numbers recursive-datastructures