Как распечатать многочлен, используя значения в массиве, используя для l oop и To.String - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь распечатать полиномиальное выражение размера n, где n - это количество значений в массиве. Я использую только одну переменную (x), постоянный член в конце многочлена всегда массив [0], а коэффициенты - это элементы после массива [0], полномочия в порядке убывания, начиная с array.length - 1 Я пытался использовать a для l oop, чтобы перебрать массив и назначить термины инкрементным элементам массива, однако я не знаю, как полностью это сделать, используя a для l oop. назначить термины, а затем распечатать их методом to.string.

Буду признателен за любую помощь!

Это то, что я имею до сих пор:

class MyPolynomial
    {
        private double[] _coeffs;
        private int degree;



        public MyPolynomial(double[] coeffs)
        {
            this._coeffs = coeffs;
            this.degree = coeffs.Length - 1;
        }
        public int GetDegree()
        {
            return this.degree;
        }

        public override String ToString()
        {
            string term = null;
            string variable = "x";
            string constant = _coeffs[0].ToString();



            for (int i = 1; i < _coeffs.Length; i++)
            {
                if (_coeffs[i] == 0)
                {
                    term = null;
                }
                else
                {
                    term = _coeffs[i].ToString() + variable + "^" + degree;
                }
            }

class TestMyPolynomial
    {
        static void Main(string[] args)
        {
            MyPolynomial tomPolynomial = new MyPolynomial(new double[] { 28, 6, 8});


            tomPolynomial.ToString();
}
}

1 Ответ

0 голосов
/ 28 апреля 2020

Вы можете использовать .Select() для создания полиномиального термина

var result = string.Join("+ ", _coeffs.Select((x, i) => $"{x}^{_coeffs.Length - i - 1}"));

вся ваша функция .ToString() будет выглядеть как

public override String ToString()
{
     return string.Join("+ ", _coeffs.Select((x, i) => $"{x}^{_coeffs.Length - i - 1}"));
}

. Net Fiddle

  • Итерация каждого коэффициента с использованием Select().

  • Создание выражения с использованием интерполяция строк создать свое выражение и сохранить его.

  • Теперь присоедините строку, используя оператор. Я использовал + в качестве оператора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...