Вы можете использовать два вложенных цикла for, чтобы умножить два списка вместе, сохранив их в другом списке: (псевдокод)
define list3 as a new PolyList of length x + y
for each element A at index x in list1
for each element B at index y in list2
save list3 element at index x + y as (A * B + (element at index x + y))
Так, например, с x ^ 3 - 2x + 1 * x ^ 2 + 4 = [1, 0, -2, 1] * [0, 0, 1, 4] = [0, 0, 0, 1 , 0, 2, 1, -8, 4].
* Примечание: Ваш итоговый список может быть до в два раза размера исходной длины двух массивов, потому что, например, x ^ 3 * x ^ 3 = x ^ 6, который будет записан в шестом указателе, начиная справа. *
Также обратите внимание: Два массива должны иметь одинаковую длину, чтобы алгоритм работал правильно! Если это не предполагается созданной вами функцией, вам придется справиться с этой ситуацией.
Хороший способ выяснить, как запрограммировать такую проблему, - представить точно шаги, которые вы бы предприняли для решения проблемы, записать их, а затем перевести это на язык, на котором вы использование.