【发布时间】:2017-11-14 05:31:17
【问题描述】:
我正在尝试编写一个 Scala 函数,该函数将上限作为参数,并计算从 1 到此范围的数字的步长。它必须返回最大步数和需要那么多步的相应数量。 (作为一对 - 第一个元素是步数,第二个是相应的索引)
我已经创建了一个名为“collatz”的函数来计算步数。我对 Scala 很陌生,但由于限制,我有点卡住了。以下是我认为启动该功能的方式:
def max(x:Int):Int = {
for (i<-(1 to x).toList) yield collatz(i)
我认为解决此问题的方法是: 1. 遍历范围并将 collatz 应用于所有元素,同时将它们放入存储步数的新列表中。 2. 使用 List.max 查找新列表的最大值 3. 使用 List.IndexOf 查找索引。但是,我真的被卡住了,因为我不知道如何在不使用 var(并且只使用 val)的情况下做到这一点。谢谢!
【问题讨论】: