我已经解决了 84 个 Project Euler 问题,主要是在 Haskell 中。我现在回去尝试在 J 中解决一些我已经在 Haskell 中解决的问题,作为学习 J 的练习。
目前,我正在尝试解决问题 56。让我强调一下,我已经知道正确答案是什么,因为我已经在 Haskell 中解决了它。这是一个非常简单、微不足道的问题。我不会在这里给出答案。
这是我在 J 中的解决方案:
数字 =: ("."0)@":"0 eachDigit =: adverb : 'u@:digits"0' 注意。我经常使用这个,所以我把它变成了副词。 笛卡尔 =: 副词 : '((#~ #) u ($~ *:@#))' >./ +/ eachDigit x: ^笛卡尔 >: i. 99
这会产生一个小于预期结果的数字。换句话说,它在某种程度上是错误的。那里有J-ers知道为什么吗?我很困惑,因为它非常简单而且完全是蛮力。