我正在尝试使用 Chapel 来解决一个简单的问题:
求 1000 以下 3 或 5 的倍数之和 (ProjectEuler001)
这是我的代码:
module Main {
const topValue = 1000;
var mostWanted : [0..#topValue] int;
proc main() {
forall (elem,i) in zip(mostWanted, 0..) {
if(i % 3 == 0 || i % 5 == 0) {
elem = i;
}
}
var total = sum reduce mostWanted;
writeln(total);
}
}
然后我收到消息:
001.chpl:6: In function 'main':
001.chpl:14: error: unresolved call 'sum(eltType=type int(64))'
但是如果我把这个词改成sum
,max
它会给我正确的答案:999。
我错过了什么?我不明白为什么max
工作和sum
不工作。