SEND + MORE = MONEY: Difference between revisions

Content added Content deleted
(Added Wren)
(→‎{{header|Wren}}: A bit simpler and quicker.)
Line 82: Line 82:
var ors = []
var ors = []
var m = 1
var m = 1
var digits = (0..9).toList
digits.remove(m)
for (s in 2..9) {
for (s in 2..9) {
for (e in 0..9) {
for (e in digits) {
if (e == m || e == s) continue
if (e == s) continue
for (n in 0..9) {
for (n in digits) {
if (n == m || n == s || n == e) continue
if (n == s || n == e) continue
for (d in 0..9) {
for (d in digits) {
if (d == m || d == s || d == n || d == e) continue
if (d == s || d == e || d == n) continue
sends.add([s, e, n, d])
sends.add([s, e, n, d])
}
}
Line 94: Line 96:
}
}
}
}
for (o in 0..9) {
for (o in digits) {
if (o == m) continue
for (r in digits) {
for (r in 0..9) {
if (r == o) continue
if (r == m || r == o) continue
ors.add([o, r])
ors.add([o, r])
}
}
Line 106: Line 107:
for (or in ors) {
for (or in ors) {
if (send.contains(or[0]) || send.contains(or[1])) continue
if (send.contains(or[0]) || send.contains(or[1])) continue
var sendmore = send + [m] + or
var sendmore = send + or
var MORE = 1000 * m + 100 * or[0] + 10 * or[1] + send[1]
var MORE = 1000 * m + 100 * or[0] + 10 * or[1] + send[1]
for (y in 0..9) {
for (y in digits) {
if (sendmore.contains(y)) continue
if (sendmore.contains(y)) continue
var MONEY = 10000 * m + 1000 * or[0] + 100 * send[2] + 10 * send[1] + y
var MONEY = 10000 * m + 1000 * or[0] + 100 * send[2] + 10 * send[1] + y
Line 124: Line 125:
9567 + 1085 = 10652
9567 + 1085 = 10652


Took 0.263465 seconds.
Took 0.245213 seconds.
</pre>
</pre>