Lee el ábaco (Parte 2: Soroban japonés)

Published by zatoichi49 in

El soroban japonés es un tipo de ábaco (herramienta para contar) que se utiliza deslizando cuentas ensartadas hacia arriba y hacia abajo por alambres. El soroban está dividido en una plataforma superior (donde cada cuenta vale 5 unidades) y una plataforma inferior (donde las cuentas valen 1 unidad). De derecha a izquierda, las unidades aumentan por un factor de 10. Si usamos "O" para una cuenta y "|" para mostrar el alambre, podemos representar el soroban de la siguiente manera:

OOOOOOO
|||||||  Upper deck
-------  Dividing line
|||||||  Lower deck
OOOOOOO
OOOOOOO
OOOOOOO
OOOOOOO

Para leer el número, contamos el valor correspondiente a las cuentas que se han movido hacia la línea divisoria. Los valores de las plataformas superior e inferior se suman. En el ejemplo siguiente, el número es 30651:

OOOO||O
||||OO|
-------
||O|O|O
OOOO|O|
OOOOOOO
OO|OOOO
OOOOOOO

0000550  Upper deck
0030101  Lower deck
  30651  Total

Dado un arreglo de cadenas que representa el soroban, devuelve el número que se muestra.

Ejemplos

soroban([
  "OOOO||O",
  "||||OO|",
  "-------",
  "|||O|OO",
  "OOOOOOO",
  "OOO|OOO",
  "OOOOO|O",
  "OOOOOO|"
]) ➞ 2584

soroban([
  "||OO||O",
  "OO||OO|",
  "-------",
  "OO|OO||",
  "OOO|OOO",
  "OOOO|OO",
  "|OOOOOO",
  "O|OOOOO"
]) ➞ 8901750

Notas

Para obtener más información sobre cómo usar un soroban, consulta la pestaña Resources.