Ejercicio C++, Números de Hamming
Hola amigos, tengo un problema como de costumbre, tengo que hacer el siguiente problema:
Cita:
Cita:
Gracias y hasta luego!!! |
Pues amigos, el ejercicio, después de muchas horas leyendo el enunciado y pensar, he llegado a la conclusión de que está bien, no le falta nada...
Lo que digo arriba es que no sabía si el número que factorizo es múltiplo de 2, 3 ó 5, pero como factorizo para 2, 3 ó 5 ,por fuerza tiene que ser múltiplo de alguno de esos números; y aunque el ejercicio diga que sólo sea múltiplo de 2, 3 ó 5, si por ejemplo el número fuese 40, sería múltiplo de 4, y como 4 es 2^2, pues es múltiplo de 2... Bueno, no sé si me explico, pero creo que está bien, de todas maneras, si alguien me diijese si está bien o no, le estaría muy agradecido. Ta luego!!! |
Hace tiempo que no uso C y se me ha olvidado casi todo lo que se...pero en el procedimiento que empleas me parece que lo que haces es mirar uno a uno los números naturales y comprobar si son de Hamming con las divisiones sucesivas...esto es lo que te aconseja el enunciado...
¿Y no sería más fácil aplicar la fórmula directamente? Sólo habría que multiplicar por 2, 3 y 5. 1 1*2 = 2 (el número anterior por 2) 1*2*3 = 2*3 = 6 (el número anterior por 3) 1*2*3*5 = 6*5 = 30 (el número anterior por 5) 1*2*3*5*2 = 30*2 = 60 (el número anterior por 2) 1*2*3*5*2*3 = 60*3 = 180 (el número anterior por 3) 1*2*3*5*2*3*5 = 180*5 = 900 (el número anterior por 5) ... No se si me explico... A la hora de programarlo pintaríamos en pantalla el 1 directamente y luego haríamos un for para los productos hasta llegar a 99 (el 1, junto con los 99 del while nos dan los 100 números pedidos). Y dentro del for, usamos unos if para ir cambiando el número por el que multiplicamos: primero por el 2 y multiplicamos, luego si esa variable vale dos la cambiamos por 3 y muliplicamos y si la variable vale 5 la cambiamos por 2 y multiplicamos. También se podría hacer con un case en lugar del if. |
Muchas gracias kolmo7 por tu explicación, la entiendo, y así sería más sencillo, lo malo que ya entregué ayer el ejercicio...pero está bien como lo hice, por lo menos es algo, y utilizo una sentencia while que de eso se trataba, aunque hubiese estado mejor si aplicase también for.
Bueno, gracias de nuevo y ta leugo!!! |
Llegué tarde...lo siento.
|
La franja horaria es GMT +2. Ahora son las 19:11. |
Powered por vBulletin™ Version 3.8.10
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.
Traducido por vBsoporte - vBulletin en español
ZackYFileS - Foros de Debate