【发布时间】:2020-05-11 02:49:02
【问题描述】:
我想使用函数初始化构造一次性生成以下数字序列:
Array(0, 0, 0, 0, 3, 3, 6, 6, 9, 9, ..., n*3, n*3)
一种方法是:
Array.fill[Int](2)(0) ++ Array.tabulate(4)(_*3)
但我需要将构造的第二部分的每个值加倍,即得到0, 0,然后是3, 3 等。如何复制第二个构造的值?
我也想不出一个能生成这样序列的数学函数。
【问题讨论】:
-
我假设 Scala 支持整数除法?如果是这样,您可以在乘以 3 之前将索引除以 2;将从 0 和 1 映射到 0,从 2 和 3 映射到 3,从 4 和 5 映射到 6,等等
-
@ruakh 好主意,我没想到 :)
标签: arrays algorithm scala functional-programming