using System;
using System.Collections.Generic;
public class Task
{
public static void Main()
{
//Два вещественных числа на одной строке с любым числом пробелов
Console.WriteLine("Введите коэффициенты a, b:");
var s = Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries);
double a = Convert.ToDouble(s[0]);
double b = Convert.ToDouble(s[1]);
Console.WriteLine("Решения уравнения ({0})*x^3+({1})*x=0:", a, b);
//a*x^3+bx=0
//x(a*x^2+b)=0
//x = 0 или x = +-sqrt(-b/a)
List<double> roots = new List<double>();
roots.Add(0);
const double eps = 1e-7; //точность для сравнения с нулем вещественных чисел
if (Math.Abs(a) < eps)
{
if (Math.Abs(b) < eps)
{
Console.WriteLine("Бесконечное количество решений");
return;
}
}
else
{
double c = -b/a;
if (c > eps)
{
c = Math.Sqrt(c);
roots.Add(-c);
roots.Add(c);
}
}
foreach(var x in roots)
{
Console.Write("{0} ", x);
}
Console.WriteLine();
}
}
Вот схему рисовать не стала думаю поймешь
Пусть сумма взаимоисключающих ходов = 0. Ход, обратный ходу Z, обозначается как -Z.
Так 1 + 2 = 0 и 3 + 4 = 0, поэтому
-1 = 2,
-2 = 1,
-3 = 4,
-4 = 3
Наша исходная последовательность 3,3,2,3,3,2,4,1 должна стать -1,-4,-2,-3,-3,-2,-3,-3
что по описанным выше правилам = 2,3,1,4,4,1,4,4 - ответ
<em>// PascalABC.NET 3.3, сборка 1579 от 18.11.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
Range(1,20).Tabulate(t->t*t).Println(NewLine)
end.
<u>Пример</u>
(1,1)
(2,4)
(3,9)
(4,16)
(5,25)
(6,36)
(7,49)
(8,64)
(9,81)
(10,100)
(11,121)
(12,144)
(13,169)
(14,196)
(15,225)
(16,256)
(17,289)
(18,324)
(19,361)
(20,400)