val SumABC = 1000
val Max = 468
val Min = 32
val p9 = for {
a <- Max to 250 by -1
b <- Min+(Max-a) to 249
if a*a+b*b == (SumABC-a-b)*(SumABC-a-b)
} yield a*b*(SumABC-a-b)我可以在这里使用.take(1)吗?(我试图将其转换为平面地图、过滤器等,但由于我失败了,我猜它的可读性也不会那么好……)
发布于 2012-11-14 17:53:54
如果我理解你的神秘问题,你想做的事情如下
val p9 = (for {
a <- Max to 250 by -1
b <- Min+(Max-a) to 249
if a*a+b*b == (SumABC-a-b)*(SumABC-a-b)
} yield a*b*(SumABC-a-b)).take(1)只需在for之前和之后添加括号,以确保在for块的结果上调用take方法
https://stackoverflow.com/questions/13376444
复制相似问题