Posterior a consultar expertos en el tema, programadores de deferentes áreas y maestros hemos dado con la solución al problema y la dejamos plasmada en este post.
Solución:
Python 2.7, 155 bytes
s='second unison third fourth sixth fifth seventh octave Diminished Augmented'.split()
def f(n,c):x=0xDE9CB87561430>>[4,8][c>'h']*n;print s[x%2+8],s[x/2%8]
Python 2, 149 bytes
def f(n,c):n*=1+(c>'h');print(n-6)%13%2*"Diminished"or"Augmented",'octave seventh sixth fifth fourth third second unison'.split()[71056674174>>3*n&7]
Primero, los pasos completos se convierten en medios pasos.
Después, Diminished
contra Augmented
está impreso. Estos se alternan para adyacentes n
excepto eso n=5
y n=6
dan lo mismo, lo que se logra colocándolos primero a través de un límite módulo un número impar.
Finalmente, se imprime la distancia, calculada a través de una tabla de búsqueda de tres bits. Esto es más corto que hacer int('6746543230210'[n])
.
Reseñas y calificaciones del tutorial
Si tienes algún titubeo o forma de perfeccionar nuestro enunciado te invitamos ejecutar una referencia y con placer lo estudiaremos.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)