Explicación:
El año pasado en la clase de matemáticas, en la tarea, ocasionalmente recibíamos estas preguntas extremadamente simples, aunque igualmente molestas, llamadas rompecabezas de diamantes. Estas eran básicamente preguntas en las que se nos daría una suma, y luego se le pedía a un producto que encontrara los dos números que, cuando se multiplicaban, daban el producto, y cuando se sumaban, daban la suma. Esto me volvió loco, ya que la única forma en que sabía cómo resolverlos (en Álgebra I) era simplemente enumerar los factores del producto y luego ver cuáles sumaban para hacer la suma. (Como no sabía cómo usar Quadratics en ese momento) Sin mencionar que no eran exactamente un desafío matemático. Sin embargo, se me ocurrió que debería haber escrito un programa. ¡Ese es tu desafío hoy! Escribe un programa que pueda resolver un rompecabezas de diamantes.
Ejemplos Disculpas por la imagen borrosa, es lo mejor que pude encontrar. Además, ignore los números en burbujas. La parte superior del diamante es el producto, la parte inferior es la suma, la derecha y la izquierda son los dos números. Las respuestas son las siguientes: (Estos también son sus casos de prueba)
- 9, -7
- -2, -1
- 5, 8
- -9, -9
Reglas:
- No puede utilizar ninguna función o clase predefinida que logre esto por usted.
- Su código debe ser un programa completo o una función que devuelva o imprima las respuestas una vez que las encuentre
- La entrada es la suma y el producto, que se ingresan como parámetros de función o entrada del usuario
Presupuesto:
- Suponga que los dos números, la suma y el producto siempre serán un número entero.
- Las dos respuestas estarán entre -127 y 127.
- Su entrada será dos enteros (Suma y Producto).
Recuerde que esto es código golf, por lo que gana el conteo de bytes más corto. Titula tu respuesta con el ## nombre de idioma estándar, recuento de bytes
Editar: Además, Doorknob señaló que esto es esencialmente "factorizar un cuadrático de forma x ^ 2 + bx + c". Esa es otra forma de pensar y abordar este desafío. :RE
(x + n)(x + m)
te da x^2 + (n+m)x + (n*m)
, así que factorizar dicha cuadrática es básicamente equivalente a esta pregunta (si lo entiendo correctamente).
x^2 + bx + c
", ¿correcto?