Preparándome para un concurso
Hola a todos.
Me encuentro preparándome para un concurso de programación justo con Jose Manuel miembro de este foro hemos tenido algunos problemas en el manejo de tiempo de ejecución en algunos programas o tal vez tengamos mal nuestra lógica para responder algunos problemas en seguida expongo un problema y la solución que le dimos si alguien tiene otra solución seria grandioso ya Ezamudio me dio unas recomendaciones.
Algunos enteros se pueden representar como diferencia de dos enteros al cuadrado, por ejemplo 15 = 4^2- 1^2= 8^2- 7^2
Escribe un programa que determine la cantidad de formas distintas t en las que se puede escribir un
número entero n como diferencia de dos cuadrados a^2 - b^2 donde a ≥ b ≥ 0.
Entrada: Un número entero n tal que 0 ≤ n ≤ 1,000,000
Este es el codigo:
- JaimeItlzc's blog
- Inicie sesión o regístrese para enviar comentarios
que pasa cuando...
veo que el tope de tu ciclo es la raiz cuadrada del numero introducido. Pero que pasa si el numero introducido es cero?
por otro lado
si tu numero de entrada es solo 0 ≤ n ≤ 1,000,000
entonces no es necesario que realices validaciones cuando b > a dado que solo tendras numeros negativos con lo que estas tirando procesamiento a la basura... asi que tienes que hacer validaciones solo cuando a >= b
opino que tu ciclo debiera ser un poco mas como esto
tu mismo pusiste la respuesta en la edicion del ejercicio:
dos cuadrados a^2 - b^2 donde a ≥ b ≥ 0.