0
共同因素,我们需要找到一个整数列表所有常见因素:找到斯卡拉
val b = List(4, 8, 12)
b: List[Int] = List(4, 8, 12)
获取列表中的最小值:
val min_b = b.min
min_b: Int = 4
迭代通过从1到范围min_b并检查b中的每个元素是否可被迭代器的当前值整除,但输出包含空AnyVals
:
val factors_of_b = (1 to min_b)
.map { x => if (b.forall{ z => z % x == 0 }) x }
个
结果:
factors_of_b: scala.collection.immutable.IndexedSeq[AnyVal] = Vector(1, 2,(), 4)
屈服零代替的不适用的因素和过滤为零的结果是一个解决办法,但也许存在一个更清洁,更Scala的式的解决方案?
val factors_of_b = (1 to min_b)
.map { x => if(b.forall{ z => z % x == 0 }) x else 0 }
.filterNot(_ == 0)
结果:
factors_of_b: scala.collection.immutable.IndexedSeq[Int] = Vector(1, 2, 4)
若要正确格式化较大的作品,请用四个空格缩进。背包是用于小型单行代码的。 – Carcigenicate