Explicação:
No ano passado, na aula de matemática, nos trabalhos de casa, ocasionalmente, recebíamos essas perguntas extremamente simples, embora igualmente irritantes, chamadas quebra-cabeças de diamante. Essas eram basicamente perguntas nas quais receberíamos uma soma, e um produto foi solicitado a encontrar os dois números que, quando multiplicados, dão o produto e, quando adicionados, dão a soma. Isso me deixou louco, já que a única maneira de saber como resolvê-los (em Álgebra I) era apenas listar os fatores do produto e depois ver quais foram adicionados para fazer a soma. (Como eu não sabia usar Quadratics na época). Sem mencionar, eles não eram exatamente um desafio matemático. No entanto, ocorreu-me que eu deveria ter acabado de escrever um programa. Então esse é o seu desafio hoje! Escreva um programa que possa resolver um quebra-cabeça de diamante.
Exemplos Desculpas pela imagem embaçada, é o melhor que pude encontrar. Além disso, ignore os números em bolhas. A parte superior do diamante é o produto, a parte inferior é a soma, a direita e a esquerda são os dois números. As respostas são as seguintes: (Esses também são seus casos de teste)
- 9, -7
- -2, -1
- 5, 8
- -9, -9
Regras:
- Você não pode usar nenhuma função ou classe predefinida que realize isso para você.
- Seu código deve ser um programa completo ou função que retorne ou imprima as respostas assim que as encontrar
- A entrada é a soma e o produto, que são inseridos como parâmetros de função ou como entrada do usuário
Especificações:
- Suponha que os dois números, a soma e o produto sempre sejam um número inteiro.
- As duas respostas estarão entre -127 e 127.
- Sua entrada será dois números inteiros (soma e produto).
Lembre-se de que isso é código-golfe, e a menor contagem de bytes vence. Nomeie sua resposta com o padrão ## Nome do idioma, contagem de bytes
Edit: Além disso, Maçaneta apontou que este é essencialmente "fator a quadrático da forma x ^ 2 + bx + c". Essa é outra maneira de pensar e abordar esse desafio. : D
(x + n)(x + m)
fornece a você x^2 + (n+m)x + (n*m)
, portanto, fatorar o quadrático é basicamente equivalente a esta pergunta (se eu estiver entendendo corretamente).
x^2 + bx + c
", correto?