Wyjaśnienie:
W zeszłym roku na lekcji matematyki od czasu do czasu otrzymywaliśmy te niezwykle proste, choć równie irytujące pytania, zwane diamentowymi łamigłówkami. Były to w zasadzie pytania, w których otrzymalibyśmy sumę, a następnie produkt został poproszony o znalezienie dwóch liczb, które po pomnożeniu dają iloczyn, a po dodaniu dają sumę. Doprowadziło mnie to do szaleństwa, ponieważ jedynym sposobem, w jaki wiedziałem, jak je rozwiązać (w Algebra I), było po prostu wyszczególnienie czynników produktu, a następnie sprawdzenie, które z nich zostały dodane do sumy. (Ponieważ nie wiedziałem wtedy, jak korzystać z Quadratics). Nie wspominając o tym, że nie były to trudne wyzwania matematyczne. Jednak przyszło mi do głowy, że powinienem napisać program. To jest twoje wyzwanie dzisiaj! Napisz program, który potrafi rozwiązać diamentową łamigłówkę.
Przykłady Przepraszamy za rozmazany obraz, najlepiej jak mogłem go znaleźć. Zignoruj też liczby w bąbelkach. Góra diamentu to iloczyn, dół to suma, prawa i lewa to dwie liczby. Odpowiedzi są następujące: (Są to również twoje przypadki testowe)
- 9, -7
- -2, -1
- 5, 8
- -9, -9
Zasady:
- Nie możesz używać żadnych predefiniowanych funkcji lub klas, które dokonają tego za Ciebie.
- Twój kod musi być kompletnym programem lub funkcją, która albo zwraca albo drukuje odpowiedzi, gdy je znajdzie
- Dane wejściowe to suma i iloczyn, które są wprowadzane jako parametry funkcji lub dane wejściowe użytkownika
Dane techniczne:
- Załóżmy, że dwie liczby, suma i iloczyn zawsze będą liczbą całkowitą.
- Obie odpowiedzi będą w zakresie od -127 do 127.
- Twoje dane wejściowe będą dwie liczby całkowite (Suma i Produkt).
Pamiętaj, że to kod-golf, więc wygrywa najkrótsza bajt. Wpisz tytuł swojej odpowiedzi standardową nazwą języka ##, liczba bajtów
Edycja: Doorknob wskazał również, że jest to „czynnik kwadratowy formy x ^ 2 + bx + c”. To kolejny sposób na przemyślenie i podejście do tego wyzwania. :RE
(x + n)(x + m)
daje x^2 + (n+m)x + (n*m)
, więc faktoryzacja kwadratyki jest w zasadzie równoznaczna z tym pytaniem (jeśli dobrze to rozumiem).
x^2 + bx + c
”, prawda?