Countdown: Difference between revisions
→{{header|Quorum}}: Speed optimisation
(Back to initial Quorum solution without compiler memory allocation bug during recursive calls on lists or array data structures) |
(→{{header|Quorum}}: Speed optimisation) |
||
Line 322:
number start = datetime:GetEpochTime()
List<integer> numbers
numbers:Add(100)▼
numbers:Add(75)▼
numbers:Add(50)▼
numbers:Add(25)▼
numbers:Add(6)▼
numbers:Add(3)
▲ numbers:Add(6)
▲ numbers:Add(25)
▲ numbers:Add(50)
▲ numbers:Add(75)
▲ numbers:Add(100)
if not Solution(952,numbers)
output "No exact solution found."
Line 351:
integer res = 0
List<integer> numbersNew
numbersNew:Add(res)▼
if res = target or Solution(target, numbersNew)▼
output res + " = " + n1 + " + " + n0▼
return true▼
end▼
res = n1 * n0▼
numbersNew = cast(List<integer>, numbers2:Copy())▼
numbersNew:Add(res)▼
if res = target or Solution(target, numbersNew)▼
output res + " = " + n1 + " * " + n0▼
return true▼
end▼
if n1 > n0▼
res = n1 - n0▼
numbersNew = cast(List<integer>, numbers2:Copy())
numbersNew:Add(res)
if res = target or Solution(target, numbersNew)
output res + " = " + n1 + "
return true
end
if n1 >= n0 and n1 mod n0 = 0▼
res = n1 / n0▼
numbersNew = cast(List<integer>, numbers2:Copy())
numbersNew:Add(res)
if res = target or Solution(target, numbersNew)
output res + " = " + n1 + "
return true
end
▲ numbersNew = cast(List<integer>, numbers2:Copy())
end // it0▼
▲ numbersNew:Add(res)
end // if numbers:GetSize() > 1▼
▲ if res = target or Solution(target, numbersNew)
▲ return true
▲ end
numbersNew = cast(List<integer>, numbers2:Copy())
▲ numbersNew:Add(res)
▲ if res = target or Solution(target, numbersNew)
▲ return true
▲ end
end // it1:HasNext()
▲ end // it0:HasNext()
return false
end
Line 396 ⟶ 398:
225 = 3 * 75
106 = 6 + 100
</pre>
=={{header|Wren}}==
{{trans|Quorum}}
|