Posted on by Kalkicode
Code Mathematics

Add of two polynomials using array

Adding two polynomials using arrays involves representing the coefficients of the polynomials as elements in arrays and then performing the addition of the coefficients.

For example, suppose we have two polynomials:


7 + 8x^1 + 6x^2 + 1x^3 + 3x^4
5 + 1x^1 + 3x^2 + 2x^3
-------------------------------
12 + 9x^1 + 9x^2 + 3x^3 + 3x^4

Program Solution

// C Program
// Add of two polynomials using array
#include <stdio.h>

// Display polynomial sequence
void printPolynomial(int polynomial[], int n)
{
	for (int i = 0; i < n; ++i)
	{
		if (i != 0)
		{
			printf(" + %dx^%d", polynomial[i], i);
		}
		else
		{
			printf("%d", polynomial[i]);
		}
	}
	printf("\n");
}
int maxLength(int a, int b)
{
	if (a > b)
	{
		return a;
	}
	return b;
}
void addPolynomials(int x[], int y[], int a, int b)
{
	// Display polynomial
	printPolynomial(x, a);
	printPolynomial(y, b);
	// Get max length
	int n = maxLength(a, b);
	// Use to collect result element
	int z[n];
	for (int i = 0; i < n; ++i)
	{
		if (i < a && i < b)
		{
			// Case ➀ : When have both polynomials element exists
			z[i] = x[i] + y[i];
		}
		else if (i < a)
		{
			// Case ➁ : When have x polynomial element exists
			z[i] = x[i];
		}
		else
		{
			// Case ➂ : When have y polynomial element exists
			z[i] = y[i];
		}
	}
	// Display calculated result
	printPolynomial(z, n);
}
int main()
{
	// Given polynomials
	int x[] = {
		7 , 8 , 6 , 1 , 3
	};
	int y[] = {
		5 , 1 , 3 , 2
	};
	// Get the size
	int a = sizeof(x) / sizeof(x[0]);
	int b = sizeof(y) / sizeof(y[0]);
	// Test
	addPolynomials(x, y, a, b);
	return 0;
}

Output

7 + 8x^1 + 6x^2 + 1x^3 + 3x^4
5 + 1x^1 + 3x^2 + 2x^3
12 + 9x^1 + 9x^2 + 3x^3 + 3x^4
/*
    Java program
    Add of two polynomials using array
*/
public class Addition
{
	// Display polynomial sequence
	public void printPolynomial(int[] polynomial, int n)
	{
		for (int i = 0; i < n; ++i)
		{
			if (i != 0)
			{
				System.out.print(" + " + polynomial[i] + "x^" + i);
			}
			else
			{
				System.out.print(polynomial[i]);
			}
		}
		System.out.print("\n");
	}
	public int maxLength(int a, int b)
	{
		if (a > b)
		{
			return a;
		}
		return b;
	}
	public void addPolynomials(int[] x, int[] y, int a, int b)
	{
		// Display polynomial
		printPolynomial(x, a);
		printPolynomial(y, b);
		// Get max length
		int n = maxLength(a, b);
		// Use to collect result element
		int[] z = new int[n];
		for (int i = 0; i < n; ++i)
		{
			if (i < a && i < b)
			{
				// Case ➀ : When have both polynomials element exists
				z[i] = x[i] + y[i];
			}
			else if (i < a)
			{
				// Case ➁ : When have x polynomial element exists
				z[i] = x[i];
			}
			else
			{
				// Case ➂ : When have y polynomial element exists
				z[i] = y[i];
			}
		}
		// Display calculated result
		printPolynomial(z, n);
	}
	public static void main(String[] args)
	{
		Addition task = new Addition();
		// Given polynomials
		int[] x = {
			7 , 8 , 6 , 1 , 3
		};
		int[] y = {
			5 , 1 , 3 , 2
		};
		// Get the size
		int a = x.length;
		int b = y.length;
		// Test
		task.addPolynomials(x, y, a, b);
	}
}

Output

7 + 8x^1 + 6x^2 + 1x^3 + 3x^4
5 + 1x^1 + 3x^2 + 2x^3
12 + 9x^1 + 9x^2 + 3x^3 + 3x^4
// Include header file
#include <iostream>
using namespace std;
/*
    C++ program
    Add of two polynomials using array
*/
class Addition
{
	public:
		// Display polynomial sequence
		void printPolynomial(int polynomial[], int n)
		{
			for (int i = 0; i < n; ++i)
			{
				if (i != 0)
				{
					cout << " + " << polynomial[i] << "x^" << i;
				}
				else
				{
					cout << polynomial[i];
				}
			}
			cout << "\n";
		}
	int maxLength(int a, int b)
	{
		if (a > b)
		{
			return a;
		}
		return b;
	}
	void addPolynomials(int x[], int y[], int a, int b)
	{
		// Display polynomial
		this->printPolynomial(x, a);
		this->printPolynomial(y, b);
		// Get max length
		int n = this->maxLength(a, b);
		// Use to collect result element
		int z[n];
		for (int i = 0; i < n; ++i)
		{
			if (i < a && i < b)
			{
				// Case ➀ : When have both polynomials element exists
				z[i] = x[i] + y[i];
			}
			else if (i < a)
			{
				// Case ➁ : When have x polynomial element exists
				z[i] = x[i];
			}
			else
			{
				// Case ➂ : When have y polynomial element exists
				z[i] = y[i];
			}
		}
		// Display calculated result
		this->printPolynomial(z, n);
	}
};
int main()
{
	Addition *task = new Addition();
	// Given polynomials
	int x[] = {
		7 , 8 , 6 , 1 , 3
	};
	int y[] = {
		5 , 1 , 3 , 2
	};
	// Get the size
	int a = sizeof(x) / sizeof(x[0]);
	int b = sizeof(y) / sizeof(y[0]);
	// Test
	task->addPolynomials(x, y, a, b);
	return 0;
}

Output

7 + 8x^1 + 6x^2 + 1x^3 + 3x^4
5 + 1x^1 + 3x^2 + 2x^3
12 + 9x^1 + 9x^2 + 3x^3 + 3x^4
// Include namespace system
using System;
/*
    Csharp program
    Add of two polynomials using array
*/
public class Addition
{
	// Display polynomial sequence
	public void printPolynomial(int[] polynomial, int n)
	{
		for (int i = 0; i < n; ++i)
		{
			if (i != 0)
			{
				Console.Write(" + " + polynomial[i] + "x^" + i);
			}
			else
			{
				Console.Write(polynomial[i]);
			}
		}
		Console.Write("\n");
	}
	public int maxLength(int a, int b)
	{
		if (a > b)
		{
			return a;
		}
		return b;
	}
	public void addPolynomials(int[] x, int[] y, int a, int b)
	{
		// Display polynomial
		this.printPolynomial(x, a);
		this.printPolynomial(y, b);
		// Get max length
		int n = this.maxLength(a, b);
		// Use to collect result element
		int[] z = new int[n];
		for (int i = 0; i < n; ++i)
		{
			if (i < a && i < b)
			{
				// Case ➀ : When have both polynomials element exists
				z[i] = x[i] + y[i];
			}
			else if (i < a)
			{
				// Case ➁ : When have x polynomial element exists
				z[i] = x[i];
			}
			else
			{
				// Case ➂ : When have y polynomial element exists
				z[i] = y[i];
			}
		}
		// Display calculated result
		this.printPolynomial(z, n);
	}
	public static void Main(String[] args)
	{
		Addition task = new Addition();
		// Given polynomials
		int[] x = {
			7 , 8 , 6 , 1 , 3
		};
		int[] y = {
			5 , 1 , 3 , 2
		};
		// Get the size
		int a = x.Length;
		int b = y.Length;
		// Test
		task.addPolynomials(x, y, a, b);
	}
}

Output

7 + 8x^1 + 6x^2 + 1x^3 + 3x^4
5 + 1x^1 + 3x^2 + 2x^3
12 + 9x^1 + 9x^2 + 3x^3 + 3x^4
package main
import "fmt"
/*
    Go program
    Add of two polynomials using array
*/
type Addition struct {}
func getAddition() * Addition {
	var me *Addition = &Addition {}
	return me
}
// Display polynomial sequence
func(this Addition) printPolynomial(polynomial[] int, n int) {
	for i := 0 ; i < n ; i++ {
		if i != 0 {
			fmt.Print(" + ", polynomial[i], "x^", i)
		} else {
			fmt.Print(polynomial[i])
		}
	}
	fmt.Print("\n")
}
func(this Addition) maxLength(a, b int) int {
	if a > b {
		return a
	}
	return b
}
func(this Addition) addPolynomials(x[] int, 
						y[] int, a int, b int) {
	// Display polynomial
	this.printPolynomial(x, a)
	this.printPolynomial(y, b)
	// Get max length
	var n int = this.maxLength(a, b)
	// Use to collect result element
	var z = make([] int, n)
	for i := 0 ; i < n ; i++ {
		if i < a && i < b {
			// Case ➀ : When have both polynomials element exists
			z[i] = x[i] + y[i]
		} else if i < a {
			// Case ➁ : When have x polynomial element exists
			z[i] = x[i]
		} else {
			// Case ➂ : When have y polynomial element exists
			z[i] = y[i]
		}
	}
	// Display calculated result
	this.printPolynomial(z, n)
}
func main() {
	var task * Addition = getAddition()
	// Given polynomials
	var x = [] int {
		7,
		8,
		6,
		1,
		3,
	}
	var y = [] int {
		5,
		1,
		3,
		2,
	}
	// Get the size
	var a int = len(x)
	var b int = len(y)
	// Test
	task.addPolynomials(x, y, a, b)
}

Output

7 + 8x^1 + 6x^2 + 1x^3 + 3x^4
5 + 1x^1 + 3x^2 + 2x^3
12 + 9x^1 + 9x^2 + 3x^3 + 3x^4
<?php
/*
    Php program
    Add of two polynomials using array
*/
class Addition
{
	// Display polynomial sequence
	public	function printPolynomial($polynomial, $n)
	{
		for ($i = 0; $i < $n; ++$i)
		{
			if ($i != 0)
			{
				echo(" + ".$polynomial[$i]."x^".$i);
			}
			else
			{
				echo($polynomial[$i]);
			}
		}
		echo("\n");
	}
	public	function maxLength($a, $b)
	{
		if ($a > $b)
		{
			return $a;
		}
		return $b;
	}
	public	function addPolynomials($x, $y, $a, $b)
	{
		// Display polynomial
		$this->printPolynomial($x, $a);
		$this->printPolynomial($y, $b);
		// Get max length
		$n = $this->maxLength($a, $b);
		// Use to collect result element
		$z = array_fill(0, $n, 0);
		for ($i = 0; $i < $n; ++$i)
		{
			if ($i < $a && $i < $b)
			{
				// Case ➀ : When have both polynomials element exists
				$z[$i] = $x[$i] + $y[$i];
			}
			else if ($i < $a)
			{
				// Case ➁ : When have x polynomial element exists
				$z[$i] = $x[$i];
			}
			else
			{
				// Case ➂ : When have y polynomial element exists
				$z[$i] = $y[$i];
			}
		}
		// Display calculated result
		$this->printPolynomial($z, $n);
	}
}

function main()
{
	$task = new Addition();
	// Given polynomials
	$x = array(7, 8, 6, 1, 3);
	$y = array(5, 1, 3, 2);
	// Get the size
	$a = count($x);
	$b = count($y);
	// Test
	$task->addPolynomials($x, $y, $a, $b);
}
main();

Output

7 + 8x^1 + 6x^2 + 1x^3 + 3x^4
5 + 1x^1 + 3x^2 + 2x^3
12 + 9x^1 + 9x^2 + 3x^3 + 3x^4
/*
    Node JS program
    Add of two polynomials using array
*/
class Addition
{
	// Display polynomial sequence
	printPolynomial(polynomial, n)
	{
		for (var i = 0; i < n; ++i)
		{
			if (i != 0)
			{
				process.stdout.write(" + " + polynomial[i] + "x^" + i);
			}
			else
			{
				process.stdout.write("" + polynomial[i]);
			}
		}
		process.stdout.write("\n");
	}
	maxLength(a, b)
	{
		if (a > b)
		{
			return a;
		}
		return b;
	}
	addPolynomials(x, y, a, b)
	{
		// Display polynomial
		this.printPolynomial(x, a);
		this.printPolynomial(y, b);
		// Get max length
		var n = this.maxLength(a, b);
		// Use to collect result element
		var z = Array(n).fill(0);
		for (var i = 0; i < n; ++i)
		{
			if (i < a && i < b)
			{
				// Case ➀ : When have both polynomials element exists
				z[i] = x[i] + y[i];
			}
			else if (i < a)
			{
				// Case ➁ : When have x polynomial element exists
				z[i] = x[i];
			}
			else
			{
				// Case ➂ : When have y polynomial element exists
				z[i] = y[i];
			}
		}
		// Display calculated result
		this.printPolynomial(z, n);
	}
}

function main()
{
	var task = new Addition();
	// Given polynomials
	var x = [7, 8, 6, 1, 3];
	var y = [5, 1, 3, 2];
	// Get the size
	var a = x.length;
	var b = y.length;
	// Test
	task.addPolynomials(x, y, a, b);
}
main();

Output

7 + 8x^1 + 6x^2 + 1x^3 + 3x^4
5 + 1x^1 + 3x^2 + 2x^3
12 + 9x^1 + 9x^2 + 3x^3 + 3x^4
#    Python 3 program
#    Add of two polynomials using array
class Addition :
	#  Display polynomial sequence
	def printPolynomial(self, polynomial, n) :
		i = 0
		while (i < n) :
			if (i != 0) :
				print(" +", polynomial[i] ,"x^", i, end = "")
			else :
				print(polynomial[i], end = "")
			
			i += 1
		
		print(end = "\n")
	
	def maxLength(self, a, b) :
		if (a > b) :
			return a
		
		return b
	
	def addPolynomials(self, x, y, a, b) :
		#  Display polynomial
		self.printPolynomial(x, a)
		self.printPolynomial(y, b)
		#  Get max length
		n = self.maxLength(a, b)
		#  Use to collect result element
		z = [0] * (n)
		i = 0
		while (i < n) :
			if (i < a and i < b) :
				#  Case ➀ : When have both polynomials element exists
				z[i] = x[i] + y[i]
			elif (i < a) :
				#  Case ➁ : When have x polynomial element exists
				z[i] = x[i]
			else :
				#  Case ➂ : When have y polynomial element exists
				z[i] = y[i]
			
			i += 1
		
		#  Display calculated result
		self.printPolynomial(z, n)
	

def main() :
	task = Addition()
	#  Given polynomials
	x = [7, 8, 6, 1, 3]
	y = [5, 1, 3, 2]
	#  Get the size
	a = len(x)
	b = len(y)
	#  Test
	task.addPolynomials(x, y, a, b)

if __name__ == "__main__": main()

Output

7 + 8 x^ 1 + 6 x^ 2 + 1 x^ 3 + 3 x^ 4
5 + 1 x^ 1 + 3 x^ 2 + 2 x^ 3
12 + 9 x^ 1 + 9 x^ 2 + 3 x^ 3 + 3 x^ 4
#    Ruby program
#    Add of two polynomials using array
class Addition 
	#  Display polynomial sequence
	def printPolynomial(polynomial, n) 
		i = 0
		while (i < n) 
			if (i != 0) 
				print(" + ", polynomial[i] ,"x^", i)
			else
 
				print(polynomial[i])
			end

			i += 1
		end

		print("\n")
	end

	def maxLength(a, b) 
		if (a > b) 
			return a
		end

		return b
	end

	def addPolynomials(x, y, a, b) 
		#  Display polynomial
		self.printPolynomial(x, a)
		self.printPolynomial(y, b)
		#  Get max length
		n = self.maxLength(a, b)
		#  Use to collect result element
		z = Array.new(n) {0}
		i = 0
		while (i < n) 
			if (i < a && i < b) 
				#  Case ➀ : When have both polynomials element exists
				z[i] = x[i] + y[i]
			elsif (i < a) 
				#  Case ➁ : When have x polynomial element exists
				z[i] = x[i]
			else
 
				#  Case ➂ : When have y polynomial element exists
				z[i] = y[i]
			end

			i += 1
		end

		#  Display calculated result
		self.printPolynomial(z, n)
	end

end

def main() 
	task = Addition.new()
	#  Given polynomials
	x = [7, 8, 6, 1, 3]
	y = [5, 1, 3, 2]
	#  Get the size
	a = x.length
	b = y.length
	#  Test
	task.addPolynomials(x, y, a, b)
end

main()

Output

7 + 8x^1 + 6x^2 + 1x^3 + 3x^4
5 + 1x^1 + 3x^2 + 2x^3
12 + 9x^1 + 9x^2 + 3x^3 + 3x^4
/*
    Scala program
    Add of two polynomials using array
*/
class Addition()
{
	// Display polynomial sequence
	def printPolynomial(polynomial: Array[Int], n: Int): Unit = {
		var i: Int = 0;
		while (i < n)
		{
			if (i != 0)
			{
				print(" + " + polynomial(i) + "x^" + i);
			}
			else
			{
				print(polynomial(i));
			}
			i += 1;
		}
		print("\n");
	}
	def maxLength(a: Int, b: Int): Int = {
		if (a > b)
		{
			return a;
		}
		return b;
	}
	def addPolynomials(x: Array[Int], y: Array[Int], 
      				   a: Int, b: Int): Unit = {
		// Display polynomial
		printPolynomial(x, a);
		printPolynomial(y, b);
		// Get max length
		var n: Int = maxLength(a, b);
		// Use to collect result element
		var z: Array[Int] = Array.fill[Int](n)(0);
		var i: Int = 0;
		while (i < n)
		{
			if (i < a && i < b)
			{
				// Case ➀ : When have both polynomials element exists
				z(i) = x(i) + y(i);
			}
			else if (i < a)
			{
				// Case ➁ : When have x polynomial element exists
				z(i) = x(i);
			}
			else
			{
				// Case ➂ : When have y polynomial element exists
				z(i) = y(i);
			}
			i += 1;
		}
		// Display calculated result
		printPolynomial(z, n);
	}
}
object Main
{
	def main(args: Array[String]): Unit = {
		var task: Addition = new Addition();
		// Given polynomials
		var x: Array[Int] = Array(7, 8, 6, 1, 3);
		var y: Array[Int] = Array(5, 1, 3, 2);
		// Get the size
		var a: Int = x.length;
		var b: Int = y.length;
		// Test
		task.addPolynomials(x, y, a, b);
	}
}

Output

7 + 8x^1 + 6x^2 + 1x^3 + 3x^4
5 + 1x^1 + 3x^2 + 2x^3
12 + 9x^1 + 9x^2 + 3x^3 + 3x^4
import Foundation;
/*
    Swift 4 program
    Add of two polynomials using array
*/
class Addition
{
	// Display polynomial sequence
	func printPolynomial(_ polynomial: [Int], _ n: Int)
	{
		var i: Int = 0;
		while (i < n)
		{
			if (i  != 0)
			{
				print(" +", polynomial[i] ,"x^", i, terminator: "");
			}
			else
			{
				print(polynomial[i], terminator: "");
			}
			i += 1;
		}
		print(terminator: "\n");
	}
	func maxLength(_ a: Int, _ b: Int) -> Int
	{
		if (a > b)
		{
			return a;
		}
		return b;
	}
	func addPolynomials(_ x: [Int], _ y: [Int], _ a: Int, _ b: Int)
	{
		// Display polynomial
		self.printPolynomial(x, a);
		self.printPolynomial(y, b);
		// Get max length
		let n: Int = self.maxLength(a, b);
		// Use to collect result element
		var z: [Int] = Array(repeating: 0, count: n);
		var i: Int = 0;
		while (i < n)
		{
			if (i < a && i < b)
			{
				// Case ➀ : When have both polynomials element exists
				z[i] = x[i] + y[i];
			}
			else if (i < a)
			{
				// Case ➁ : When have x polynomial element exists
				z[i] = x[i];
			}
			else
			{
				// Case ➂ : When have y polynomial element exists
				z[i] = y[i];
			}
			i += 1;
		}
		// Display calculated result
		self.printPolynomial(z, n);
	}
}
func main()
{
	let task: Addition = Addition();
	// Given polynomials
	let x: [Int] = [7, 8, 6, 1, 3];
	let y: [Int] = [5, 1, 3, 2];
	// Get the size
	let a: Int = x.count;
	let b: Int = y.count;
	// Test
	task.addPolynomials(x, y, a, b);
}
main();

Output

7 + 8 x^ 1 + 6 x^ 2 + 1 x^ 3 + 3 x^ 4
5 + 1 x^ 1 + 3 x^ 2 + 2 x^ 3
12 + 9 x^ 1 + 9 x^ 2 + 3 x^ 3 + 3 x^ 4
/*
    Kotlin program
    Add of two polynomials using array
*/
class Addition
{
	// Display polynomial sequence
	fun printPolynomial(polynomial: Array < Int > , n: Int): Unit
	{
		var i: Int = 0;
		while (i < n)
		{
			if (i != 0)
			{
				print(" + " + polynomial[i] + "x^" + i);
			}
			else
			{
				print(polynomial[i]);
			}
			i += 1;
		}
		print("\n");
	}
	fun maxLength(a: Int, b: Int): Int
	{
		if (a > b)
		{
			return a;
		}
		return b;
	}
	fun addPolynomials(x: Array < Int > , y: Array < Int > , 
                       a: Int, b: Int): Unit
	{
		// Display polynomial
		this.printPolynomial(x, a);
		this.printPolynomial(y, b);
		// Get max length
		val n: Int = this.maxLength(a, b);
		// Use to collect result element
		val z: Array < Int > = Array(n)
		{
			0
		};
		var i: Int = 0;
		while (i < n)
		{
			if (i < a && i < b)
			{
				// Case ➀ : When have both polynomials element exists
				z[i] = x[i] + y[i];
			}
			else if (i < a)
			{
				// Case ➁ : When have x polynomial element exists
				z[i] = x[i];
			}
			else
			{
				// Case ➂ : When have y polynomial element exists
				z[i] = y[i];
			}
			i += 1;
		}
		// Display calculated result
		this.printPolynomial(z, n);
	}
}
fun main(args: Array < String > ): Unit
{
	val task: Addition = Addition();
	// Given polynomials
	val x: Array < Int > = arrayOf(7, 8, 6, 1, 3);
	val y: Array < Int > = arrayOf(5, 1, 3, 2);
	// Get the size
	val a: Int = x.count();
	val b: Int = y.count();
	// Test
	task.addPolynomials(x, y, a, b);
}

Output

7 + 8x^1 + 6x^2 + 1x^3 + 3x^4
5 + 1x^1 + 3x^2 + 2x^3
12 + 9x^1 + 9x^2 + 3x^3 + 3x^4

Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment