31 lines
610 B
Text
31 lines
610 B
Text
var v2 = Fn.new { |n|
|
|
var p = 0.5
|
|
var r = 0
|
|
while (n > 0) {
|
|
if (n%2 == 1) r = r + p
|
|
p = p / 2
|
|
n = (n/2).floor
|
|
}
|
|
return r
|
|
}
|
|
|
|
var newV = Fn.new { |base|
|
|
var invb = 1 / base
|
|
return Fn.new { |n|
|
|
var p = invb
|
|
var r = 0
|
|
while (n > 0) {
|
|
r = r + p*(n%base)
|
|
p = p * invb
|
|
n = (n/base).floor
|
|
}
|
|
return r
|
|
}
|
|
}
|
|
|
|
System.print("Base 2:")
|
|
for (i in 0..9) System.print("%(i) -> %(v2.call(i))")
|
|
|
|
System.print("\nBase 3:")
|
|
var v3 = newV.call(3)
|
|
for (i in 0..9) System.print("%(i) -> %(v3.call(i))")
|