Numbers with equal rises and falls: Difference between revisions

→‎{{header|Wren}}: Partially rewritten to improve performance - about twice as fast as before.
(Added Go)
(→‎{{header|Wren}}: Partially rewritten to improve performance - about twice as fast as before.)
Line 151:
=={{header|Wren}}==
{{libheader|Wren-fmt}}
Simple brute force.
<lang ecmascript>import "/fmt" for Fmt
 
var getDigits = Fn.new { |n|
var digits = []
while (n > 0) {
digits.add(n%10)
n = (n/10).floor
}
return digits // no need to reverse
}
 
var risesEqualsFalls = Fn.new { |n|
if (n < 10) return true
var digits = getDigits.call(n)
var rises = 0
var falls = 0
forvar (iprev in= digits.count-2..0) {1
ifwhile (digits[i+1]n <> digits[i]0) {
var risesd = rises + 1n%10
} else if (digits[i+1]prev >= digits[i]0) {
fallsif =(d falls< +prev) 1{
rises = rises + 1
} else if (d > prev) {
falls = falls + 1
n = (n/10).floor }
}
prev = d
digits.addn = (n%/10).floor
}
return rises == falls
9,479

edits