Tercera Evaluación de Temas Selectos de Sistemas
Jueves 26 de mayo de 2005 (13:00 a 15:55)
Instrucciones: Deberán
resolver dos problemas, por lo que me deberán entregar dos
códigos fuente, uno para cada problema. Cada problema se
evaluará con 10 casos de prueba y cada uno de ellos vale 1
punto. Pongan un comentario en su código indicando los dos
integrantes del equipo. La lectura se hará desde la entrada
estándar y la escritura hacia la salida estándar. En sus
pruebas, usen la redirección de entrada y salida.
Problema 5.9.1: Aritmética de la primaria (primar.c,
primar.cpp
ó primar.java)
A los niños se les enseña a sumar números de
varios dígitos de derecha a izquierda, un dígito a la
vez. Muchos de ellos piensan que la operación de "acarreo",
donde un 1 se acarrea de una posición a la siguiente, es
significantamente difícil. Tu trabajo es el de contar el
número de operaciones de acarreo para cada uno de un conjunto de
problemas de adición de modo que los maestros puedan estimar su
dificultad.
Entrada: Cada línea de
la entrada contendra dos enteros sin signo con menos de 10
dígitos. La última línea de la entrada contiene "0
0".
Salida: Para cada línea
de entrada (excepto la última) calcula el número de
operaciones de acarreo que resultan de sumar los dos números e
imprímelas en el formato mostrado abajo.
Pista:
¿Necesitarás implementar completamente la suma de alta
precisión para este problema, o se puede extraer el
número de operaciones de acarreo con un método más
sencillo?
Ejemplos: Entrada
y salida. Para usar este ejemplo, escriban primar < primar.ent > primar.txt
y comparen primar.txt con
primar.sal
Problema 4.6.3: Unos (unouno.c, unouno.cpp ó unouno.java)
Dado cualquier entero 0 <= n <= 10,000 no divisible ni entre 2 ni
entre 5, algún múltiplo positivo de n es un número
que escrito en notación decimal es una secuencia de unos.
¿Cuántos dígitos tiene el menor múltiplo de
n con esa propiedad?
Entrada: Una lista de enteros
con un entero en cada línea.
Salida: Cada línea de la
salida contiene al más pequeño entero x > 0 tal que p
= 1 + 10 + ... + 10x (es decir, p es una secuencia de unos),
donde a es
el correspondiente entero de la entrada, p = ab y b es algún
entero positivo.
Pista: ¿En realidad
debemos calcular el número para saber cuántos
dígitos tiene?
Ejemplos: Entrada
y salida. Para usar este ejemplo, escriban unouno < unouno.ent > unouno.txt
y comparen unouno.txt con
unouno.sal