Задача из журнала «Квант» №72
Условие:
Пусть p — произвольное вещественное число. Найдите все такие x, что сумма кубических корней из чисел 1 – x и 1 + x равна p.
Тесты:
№ | Входные данные | Выходные данные |
1 | 0.6 | No solutions |
2 | 1.4 | x1 = -0.997217 x2 = 0.997217 |
3 | 2 | x=0 |
4 | 1.79 | x1 = -0.814516 x2 = 0.814516 |
Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include #include #define _USE_MATH_DEFINES using namespace std; int main() { double p; cin >> p; if(p < pow(2, (double)1/3) || p > 2) { // Если корней нет cout << "No solutions"; } else { // Корни есть if(p == 2) { // Если корень один cout << "x = 0"; } else { // Корней два double x1 = -sqrt(-pow(p, 9) + 6 * pow(p, 6) + 15 * pow(p, 3) + 8) / pow(3 * p, 1.5); double x2 = sqrt(-pow(p, 9) + 6 * pow(p, 6) + 15 * pow(p, 3) + 8) / pow(3 * p, 1.5); cout << "x1 = " << x1 << endl; cout << "x2 = " << x2; } } return 0; } |
Решение:
Рассмотрев условие, приходим к такому уравнению [latex] \sqrt[3]{\left(1+x \right)}+\sqrt[3]{\left(1-x \right)}=p [/latex] , где p — параметр, который будет задаваться на входе.Ответы для р будут существовать на промежутке [latex] \left[\sqrt[3]{2}; 2\right] [/latex] . Если р не входит в промежуток, то выводим «нет решений». Если р=2, то оба корня совпадут, по этому выводим один «х=0». Для остальных случаев ответом будет два корня.
Ссылки:
Решение на ideone http://ideone.com/A8DXC9
Условие http://www.kvant.info/zkm_1971.htm
Решение wolfram http://www.wolframalpha.com/input/?i=(1%2Bx)%5E(1%2F3)+%2B+(1-x)%5E(1%2F3)+%3D+p
— latex нужно использовать везде, где встречаются математические обозначения. Даже отдельных переменных.
— ссылки должны выглядеть так: Решение на ideone, а не так, как у Вас — Решение на ideone http://ideone.com/A8DXC9
— Расставьте отступы в коде.
— В части озаглавленной «Решение» Вы забыли привести решение и ответ.
— Жаль, что Вы не смогли отыскать решение в самом журнале Квант.