{"id":26252,"date":"2017-10-26T20:49:25","date_gmt":"2017-10-26T15:19:25","guid":{"rendered":"https:\/\/www.wikitechy.com\/technology\/?p=26252"},"modified":"2017-10-26T20:49:25","modified_gmt":"2017-10-26T15:19:25","slug":"c-programming-program-add-two-polynomials","status":"publish","type":"post","link":"https:\/\/www.wikitechy.com\/technology\/c-programming-program-add-two-polynomials\/","title":{"rendered":"C++ Programming &#8211; Program to add two polynomials"},"content":{"rendered":"<p>Given two polynomials represented by two arrays, write a function that adds given two polynomials.<span id=\"more-142565\"><\/span><\/p>\n<p>Example:<\/p>\n<pre>Input:  A[] = {5, 0, 10, 6} \r\n        B[] = {1, 2, 4} \r\nOutput: sum[] = {5, 10, 30, 26, 52, 24}\r\n\r\nThe first input array represents \"5 + 0x^1 + 10x^2 + 6x^3\"\r\nThe second array represents \"1 + 2x^1 + 4x^2\" \r\nAnd Output is \"6 + 2x^1 + 14x^2 + 6x^3\"<\/pre>\n<p>Addition is simpler than <a href=\"http:\/\/www.geeksforgeeks.org\/multiply-two-polynomials-2\/\" target=\"_blank\" rel=\"noopener noreferrer\">multiplication of polynomials<\/a>. We initialize result as one of the two polynomials, then we traverse the other polynomial and add all terms to the result.<\/p>\n<pre><strong>add(A[0..m-1], B[0..n01])<\/strong>\r\n1) Create a sum array sum[] of size equal to maximum of 'm' and 'n'\r\n2) Copy A[] to sum[].\r\n3) Travers array B[] and do following for every element B[i]\r\n          sum[i] = sum[i] + B[i]\r\n4) Return sum[].<\/pre>\n[ad type=\u201dbanner\u201d]\n<p>The following is C++ implementation of above algorithm.<\/p>\n[pastacode lang=\u201dcpp\u201d manual=\u201d%2F%2F%20Simple%20C%2B%2B%20program%20to%20add%20two%20polynomials%0A%23include%20%3Ciostream%3E%0Ausing%20namespace%20std%3B%0A%20%0A%2F%2F%20A%20utility%20function%20to%20return%20maximum%20of%20two%20integers%0Aint%20max(int%20m%2C%20int%20n)%20%7B%20%20return%20(m%20%3E%20n)%3F%20m%3A%20n%3B%20%7D%0A%20%0A%2F%2F%20A%5B%5D%20represents%20coefficients%20of%20first%20polynomial%0A%2F%2F%20B%5B%5D%20represents%20coefficients%20of%20second%20polynomial%0A%2F%2F%20m%20and%20n%20are%20sizes%20of%20A%5B%5D%20and%20B%5B%5D%20respectively%0Aint%20*add(int%20A%5B%5D%2C%20int%20B%5B%5D%2C%20int%20m%2C%20int%20n)%0A%7B%0A%20%20%20int%20size%20%3D%20max(m%2C%20n)%3B%0A%20%20%20int%20*sum%20%3D%20new%20int%5Bsize%5D%3B%0A%20%0A%20%20%20%2F%2F%20Initialize%20the%20porduct%20polynomial%0A%20%20%20for%20(int%20i%20%3D%200%3B%20i%3Cm%3B%20i%2B%2B)%0A%20%20%20%20%20sum%5Bi%5D%20%3D%20A%5Bi%5D%3B%0A%20%0A%20%20%20%2F%2F%20Take%20ever%20term%20of%20first%20polynomial%0A%20%20%20for%20(int%20i%3D0%3B%20i%3Cn%3B%20i%2B%2B)%0A%20%20%20%20%20%20%20sum%5Bi%5D%20%2B%3D%20B%5Bi%5D%3B%0A%20%0A%20%20%20return%20sum%3B%0A%7D%0A%20%0A%2F%2F%20A%20utility%20function%20to%20print%20a%20polynomial%0Avoid%20printPoly(int%20poly%5B%5D%2C%20int%20n)%0A%7B%0A%20%20%20%20for%20(int%20i%3D0%3B%20i%3Cn%3B%20i%2B%2B)%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20cout%20%3C%3C%20poly%5Bi%5D%3B%0A%20%20%20%20%20%20%20if%20(i%20!%3D%200)%0A%20%20%20%20%20%20%20%20cout%20%3C%3C%20%22x%5E%22%20%3C%3C%20i%20%3B%0A%20%20%20%20%20%20%20if%20(i%20!%3D%20n-1)%0A%20%20%20%20%20%20%20cout%20%3C%3C%20%22%20%2B%20%22%3B%0A%20%20%20%20%7D%0A%7D%0A%20%0A%2F%2F%20Driver%20program%20to%20test%20above%20functions%0Aint%20main()%0A%7B%0A%20%20%20%20%2F%2F%20The%20following%20array%20represents%20polynomial%205%20%2B%2010x%5E2%20%2B%206x%5E3%0A%20%20%20%20int%20A%5B%5D%20%3D%20%7B5%2C%200%2C%2010%2C%206%7D%3B%0A%20%0A%20%20%20%20%2F%2F%20The%20following%20array%20represents%20polynomial%201%20%2B%202x%20%2B%204x%5E2%0A%20%20%20%20int%20B%5B%5D%20%3D%20%7B1%2C%202%2C%204%7D%3B%0A%20%20%20%20int%20m%20%3D%20sizeof(A)%2Fsizeof(A%5B0%5D)%3B%0A%20%20%20%20int%20n%20%3D%20sizeof(B)%2Fsizeof(B%5B0%5D)%3B%0A%20%0A%20%20%20%20cout%20%3C%3C%20%22First%20polynomial%20is%20%5Cn%22%3B%0A%20%20%20%20printPoly(A%2C%20m)%3B%0A%20%20%20%20cout%20%3C%3C%20%22%5CnSecond%20polynomial%20is%20%5Cn%22%3B%0A%20%20%20%20printPoly(B%2C%20n)%3B%0A%20%0A%20%20%20%20int%20*sum%20%3D%20add(A%2C%20B%2C%20m%2C%20n)%3B%0A%20%20%20%20int%20size%20%3D%20max(m%2C%20n)%3B%0A%20%0A%20%20%20%20cout%20%3C%3C%20%22%5Cnsumuct%20polynomial%20is%20%5Cn%22%3B%0A%20%20%20%20printPoly(sum%2C%20size)%3B%0A%20%0A%20%20%20%20return%200%3B%0A%7D\u201d message=\u201dC++ Program\u201d highlight=\u201d\u201d provider=\u201dmanual\u201d\/]\n<p><strong>Output:<\/strong><\/p>\n<pre>First polynomial is\r\n5 + 0x^1 + 10x^2 + 6x^3\r\nSecond polynomial is\r\n1 + 2x^1 + 4x^2\r\nSum polynomial is\r\n6 + 2x^1 + 14x^2 + 6x^3<\/pre>\n<p><strong>Time complexity <\/strong>of the above algorithm and program is O(m+n) where m and n are orders of two given polynomials.<\/p>\n[ad type=\u201dbanner\u201d]\n","protected":false},"excerpt":{"rendered":"<p>C++ Programming &#8211; Program to add two polynomials &#8211; Mathematical Algorithms &#8211; Addition is simpler than multiplication of polynomials. We initialize result <\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[69969,83515,1,74058],"tags":[78159,78143,78167,77780,78170,77772,78166,70840,78162,78151,77751,78168,77754,78158,77630,78161,78153,78138,78149,73337,78150,78144,78142,78148,78155,78152,78137,78133,78141,78164,78136,78131,78135,78134,78154,77781,77016,78157,78146,78160,78169,78139,75430,78145,78156,78132,78165,78147,78140,78163],"class_list":["post-26252","post","type-post","status-publish","format-standard","hentry","category-algorithm","category-c-programming-3","category-coding","category-mathematical-algorithms","tag-0-1-2-3-4-5","tag-about-matlab","tag-add-polynomials","tag-adding-polynomials-calculator","tag-addition-c-program","tag-addition-of-polynomials","tag-addition-of-two-polynomials","tag-addition-program-in-c","tag-algorithm-for-polynomial-addition","tag-algorithm-for-polynomial-addition-using-array","tag-algorithm-for-polynomial-addition-using-linked-list-in-data-structure","tag-all-matlab","tag-c-addition-program","tag-c-program-addition","tag-c-program-for-addition","tag-c-program-for-addition-of-two-polynomials-using-linked-list","tag-c-program-to-multiply-two-polynomials-using-linked-list","tag-get-matlab","tag-how-to-add-polynomial","tag-linked-list-program-in-c","tag-list-of-polynomials","tag-matlab","tag-matlab-demo","tag-matlab-example-code","tag-matlab-find-function","tag-matlab-matrix-to-vector","tag-matlab-programming-basics","tag-matlab-programming-tutorial","tag-matlab-tutorial","tag-matlab-vector","tag-matrix-in-matlab","tag-matrix-matlab","tag-matrix-tutorial","tag-mbasic","tag-multiplying-polynomials-calculator","tag-polynomial-addition-algorithm-in-data-structure","tag-polynomial-addition-using-array-in-c","tag-polynomial-c-program","tag-polynomial-function","tag-polynomial-programming","tag-r-squared-matlab","tag-sanfoundry-c","tag-simple-addition-program-in-c","tag-simple-c-program-for-addition","tag-sin-4-5","tag-transpose-matrix-matlab","tag-vector-matlab","tag-vector-x","tag-what-is-matlab","tag-write-ac-program-to-add-two-numbers"],"_links":{"self":[{"href":"https:\/\/www.wikitechy.com\/technology\/wp-json\/wp\/v2\/posts\/26252","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wikitechy.com\/technology\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wikitechy.com\/technology\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wikitechy.com\/technology\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wikitechy.com\/technology\/wp-json\/wp\/v2\/comments?post=26252"}],"version-history":[{"count":0,"href":"https:\/\/www.wikitechy.com\/technology\/wp-json\/wp\/v2\/posts\/26252\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.wikitechy.com\/technology\/wp-json\/wp\/v2\/media?parent=26252"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wikitechy.com\/technology\/wp-json\/wp\/v2\/categories?post=26252"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wikitechy.com\/technology\/wp-json\/wp\/v2\/tags?post=26252"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}