2300. (тренировка) Умножение полиномов
(тренировка) Умножение полиномов
Учебные задачи: алгоритмы и структуры данных
Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод 
Послать решение Blockly Посылки Темы Где Обсудить (0)
#include <iostream>
using namespace std;
void MultPoly(int *, int *, int, int, int *);
void printres(int *, int *, int, int, int *);
int main() {
int pA, pB;
int *A, *B, *C;
cin >> pA >> pB;
A = new int[pA+1];
B = new int[pB+1];
C = new int[pA+pB+1];
int k;
for (int i=0; i<=pA; i++) {
cin >> k;
A[i] = k;
}
for (int i=0; i<=pB; i++) {
cin >> k;
B[i] = k;
}
for (int i=0; i<=pA+pB; i++) {
C[i] = 0;
}
MultPoly(A, B, pA, pB, C);
printres(A, B, pA, pB, C);
return 0;
}
void MultPoly(int *A, int *B, int pA, int pB, int *C) {
// ЭТО ФУНКЦИЯ, КОТОРУЮ ВЫ ДОЛЖНЫ НАПИСАТЬ
// A и B - полиномы - сомножители
// pA и pB - их порядки
// С - полином-результат
}
void printres(int *A, int *B, int pA, int pB, int *C) {
cout << "C = ";
if (pA+pB > 1) {
if (C[0]!=1) {
cout << C[0] << "*x^";
} else {
cout << "x^";
}
cout << pA+pB;
for (int i=1; i<=pA+pB-2; i++) {
cout << " + ";
if (C[i]!=1) {
cout << C[i] << "*x^";
} else {
cout << "x^";
}
cout << pA+pB-i;
}
cout << " + " << C[pA+pB-1] << "*x" << " + " << C[pA+pB] << endl;
}
else{
if(pA+pB==0)
cout << C[0] << endl;
if(pA+pB==1)
cout << C[0]<<"*x" << "+" << C[1] << endl;
}
}
ВводПример ввода
1 1 1 1 1 1
Пример вывода
C = x^2 + 2*x + 1