我已经解决了84个Euler项目的问题,大部分是在Haskell。我现在回到过去,试着用J来解决一些我想解决的问题
在Haskell中解决,作为学习J。
目前,我正在努力解决
Problem 56
. 让我强调一下
我已经知道正确答案是什么了
因为我已经在哈斯克尔解决了。这是一个非常简单的问题。
我不会在这里给出答案。
以下是我在J中的解决方案:
digits =: ("."0)@":"0
eachDigit =: adverb : 'u@:digits"0' NB. I use this so often I made it an adverb.
cartesian =: adverb : '((#~ #) u ($~ *:@#))'
>./ +/ eachDigit x: ^ cartesian >: i. 99
这会产生一个小于所需结果的数字。换言之,这是错误的。有人知道为什么吗?我很困惑,因为这是相当直接和完全野蛮的力量。