Given two polynomials represented by two arrays, write a function that adds given two polynomials.
Example:
Input: A[] = {5, 0, 10, 6} B[] = {1, 2, 4} Output: sum[] = {5, 10, 30, 26, 52, 24} The first input array represents "5 + 0x^1 + 10x^2 + 6x^3" The second array represents "1 + 2x^1 + 4x^2" And Output is "6 + 2x^1 + 14x^2 + 6x^3"
Addition is simpler than multiplication of polynomials. We initialize result as one of the two polynomials, then we traverse the other polynomial and add all terms to the result.
add(A[0..m-1], B[0..n01]) 1) Create a sum array sum[] of size equal to maximum of 'm' and 'n' 2) Copy A[] to sum[]. 3) Travers array B[] and do following for every element B[i] sum[i] = sum[i] + B[i] 4) Return sum[].[ad type=”banner”]
The following is C++ implementation of above algorithm.
Output:
First polynomial is 5 + 0x^1 + 10x^2 + 6x^3 Second polynomial is 1 + 2x^1 + 4x^2 Sum polynomial is 6 + 2x^1 + 14x^2 + 6x^3
Time complexity of the above algorithm and program is O(m+n) where m and n are orders of two given polynomials.
[ad type=”banner”]