Adrikk
@Adrikk
Студент

Как сделать функцию преобразующую степень и коэффициенты многочлена в готовое уравнение?

Есть допустим такие поля в классе как:
int degree; //степень многочлена
double *koef; //на массив коэффициентов многочлена

Как сделать функцию преобразующую(возвращающую) из например:
degree=3;
koef[degree+1]=[9,8,-7,6]
В такое уравнение:
9*x*x*x+8*x*x-7*x+6
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
@eaniconer
#include <iostream>

void printPolynom(double* coefs, int degree, std::ostream& os)
{
    static const char VAR = 'x';
    
    bool first = true;  
    for (int i = degree; i >= 0; --i) {
        double coef = *coefs;
        coefs++;
        
        if (!first && coef > 0.0) {
            os << "+";
        }
        first = false;
        
        os << coef;
        for (int j = 0; j < i; ++j) 
            os << '*' << VAR;
    }
}

int main()
{
   const int degree = 3;
   double coefs[degree + 1] = { 9, 3, 12, -1 };
   printPolynom(coefs, degree, std::cout);
   
   std::cout << "\nDone";
   return 0;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@res2001
Developer, ex-admin
Вам же элементарно нужно строку сформировать.
В цикле по массиву koef бежим:
1.если коэффициент не 0:
1.1.выводим сам коэффициент из массива
1.2.Если коэффициент не последний: выводим строку "x^" + str(degree - i)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы