Algunas preguntas del test
En el test te decían que tenías una máquina con un conjunto de registros. Además tienes cuatro instrucciones posibles:
- ADD x, y, z. Esto suma el valor del registro x con el valor del registro y, almacenando el resultado en el registro z.
- SUB x, y, z. Resta el valor de y en el valor del registro x y almacena el resultado en el registro z.
- MUL x, y, z. Multiplica x por y, guardando el resultado en z.
- DIV x, y, z. Divide x entre y, guardando el resultado en z. Si y es cero, se almacena cero en z.
- Tienes dos registros (A,B). El registro A contiene un 0 ó un 1. El registro B contiene un 1. Almacena en el registro A un 1 si antes contenía un 0 ó almacena un 0 si antes contenía un 1. Insisto en que a priori no sabes qué valor almacena.
- Tienes tres registros (A,B,C). Uno de ellos contiene un 1, otro un 2 y el otro un 3, pero no sabes qué registro contiene qué valor. Almacena un 7 en el registro A.
11 Comments:
Bueno el primer problema creo que lo voy a resolver de forma directa y sin comodines, aunque me da miedo que sea así, seguro que hay truco.
Sub B,A,A
Ya pensaré el otro que parece que tiene más miga y si me voy a viciar si me pongo ahora :P
Un saludo y enhorabuena por la entrevista :D
By Anónimo, at 11:57 a. m.
Pues creo que no es una solución correcta. Si restas 1 a A, consigues tener -1 ó 0 en A. Quizás debería haber aclarado que los registros siempre almacenan enteros con signo. Si fueran bits sueltos, entonces tu respuesta sería correcta.
Pero me alegra que alguien se anime. Suerte :)
By Rigel, at 12:07 p. m.
eh... qué? 1-0=1, 1-1=0... no veo el -1 por ningures.
By Anónimo, at 12:21 p. m.
¿¿Alguien me quiere decir por qué la hora que aparece en estos comentarios son las 4 de la mañana??
By lauramcastro, at 12:23 p. m.
Creo que lo que quería decir con "eh...qué?" es que la resta que hago es B-A no A-B, pero bueno ya me has metido miedo en el cuerpo xD
By Anónimo, at 12:23 p. m.
bueno y antes de largarme a comer he resuelto el segundo (o éso creo :P), ahí va la locura:
Mul A, B, A
Mul A, C, A
DIV B, B, B (lol)
ADD A, B, A
Basicamente en A almaceno el producto de los 3 registros (6), en B obtengo 1 diviendo por sí mismo y sumo ambos. A ver si alguien aporta una solución un poco más elegante :P. Un saludo.
By Anónimo, at 1:42 p. m.
Si alguien se siente herido por la ineficiencia de usar Mul (como yo me siento) debería utilizar Add que pal caso hace lo mismo :P y el procesador lo agradecerá jeje.
By Anónimo, at 1:51 p. m.
Y el trabajo es para... Kom!
Bien, bien. Gran trabajo, Kom. Has resuelto el segundo problema igual que hice yo (usando ADD) y has resuelto el primero de una forma ultra-simple que no sé cómo no se me ocurrió. Me quito el sombrero (o me lo como).
Para que el ambiente no decaiga, pongo otro de los problemas: Hay dos registros (A,B). Uno de ellos almacena un 8 y el otro almacena un 9, pero no sabes cual es cual. Consigue que el registro A almacene un 9.
By Rigel, at 1:59 p. m.
Jaja, estoy empezando a pensar que en esa empresa nunca saben qué registro almacena cada cosa, tienen un estilo de programación realmente emocionante ;).
Si la operación DIV se comporta como todos queremos (es decir, división entera) la solución es muy bonita:
DIV B,A,B (0 si A==9, 1 si A==8)
ADD A,B,A
Dios, y deja de poner rollos de éstos que me vicio xD.
By Anónimo, at 2:19 p. m.
¡Muy bien, Kom! Menos mal que no te presentaste a la entrevista tú también, que si no me quitabas el trabajo ;-)
By Rigel, at 2:50 p. m.
Hola locos!!!
Hacía unos días que no entraba y de repente me encuentro con esta pedazo fiesta algorítmica!! Tienen su gracia los problemillas.
La leche, y yo sin enterarme. Bueno Rigel, ¿conseguiste el trabajo? (apuesto a que sí).
Ah, y también me pregunto que qué horas son esas de estar delante de un ordeñador, que son horas de dormir!!! XD.
Hala, saludines a toda la parroquia.
By Anónimo, at 2:56 p. m.
Publicar un comentario
<< Home