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
res =if n1 +>= n0 // Both case are generated
numbersNew res = cast(List<integer>,n1 + numbers2:Copy())n0
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 + " -+ " + n0
return true
end
end res = n1 * n0
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 + " /* " + n0
return true
end
end if n1 not= n0
end // it1 res = n1 - n0
numbersNew = cast(List<integer>, numbers2:Copy())
end // it0
numbersNew:Add(res)
end // if numbers:GetSize() > 1
if res = target or Solution(target, numbersNew)
output res + " = " + n1 + " +- " + n0
return true
res = n1 / n0end
end
if n1 >= n0 andif 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 + " */ " + n0
return true
res = n1 - n0end
end
ifend // n1 >= n0
end // it1:HasNext()
end // it0:HasNext()
end // if numbers:GetSize() > 1
return false
end
Line 396 ⟶ 398:
225 = 3 * 75
106 = 6 + 100
311218.0 ms
</pre>
 
=={{header|Wren}}==
{{trans|Quorum}}
451

edits