Всем привет! Дали задание с комплексными числами, в котором нужно посчитать такое выражение: z - (z * z * z - 1) / (3 * z * z), где z - это комплексное число 1+1i.
Я написал класс с перегрузкой нужных операторов, но программа работает неправильно. Проверяю в онлайн калькуляторе, получается 0,6666+0,5i, а у меня выходит 0,805556+0,5i.
Вот мой класс:
class Complex
{
public double Real { get; set; }
public double Imaginary { get; set; }
public Complex(double re, double im)
{
Real = re;
Imaginary = im;
}
public static Complex operator +(Complex a, Complex b)
{
return new Complex(a.Real + b.Real, a.Imaginary + b.Imaginary);
}
public static Complex operator *(Complex a, Complex b)
{
double x = a.Real * b.Real - a.Imaginary * b.Imaginary;
double y = a.Imaginary * b.Real + a.Real * b.Imaginary;
return new Complex(x, y);
}
public static Complex operator -(Complex a, Complex b)
{
return new Complex(a.Real - b.Real, a.Imaginary - b.Imaginary);
}
public static Complex operator /(Complex a, Complex b)
{
double x = (a.Real * b.Real + a.Imaginary + b.Imaginary) / (b.Real * b.Real + b.Imaginary * b.Imaginary);
double y = (a.Imaginary * b.Real - a.Real * b.Imaginary) / (b.Real * b.Real + b.Imaginary * b.Imaginary);
return new Complex(x,y);
}
public static Complex operator -(Complex a, double b)
{
return new Complex(a.Real - b, a.Imaginary - b);
}
public static Complex operator *(double a, Complex b)
{
return new Complex(a * b.Real, a * b.Imaginary);
}
public override string ToString()
{
return $"{Real}+{Imaginary}i";
}
}
Не пойму, где ошибся. I need your help!