Open in App
Not now

# Program for Derivative of a Polynomial

• Difficulty Level : Medium
• Last Updated : 18 Nov, 2021

Given a polynomial as a string and a value. Evaluate polynomial’s derivative for the given value.
Note: The input format is such that there is a white space between a term and the ‘+’ symbol

The derivative of p(x) = ax^n is p'(x) = a*n*x^(n-1)
Also, if p(x) = p1(x) + p2(x)
Here p1 and p2 are polynomials too
p'(x) = p1′(x) + p2′(x)

```Input : 3x^3 + 4x^2 + 6x^1 + 89x^0
2
Output :58
Explanation : Derivative of given
polynomial is : 9x^2 + 8x^1 + 6
Now put x = 2
9*4 + 8*2 + 6 = 36 + 16 + 6 = 58

Input : 1x^3
3
Output : 27```

We split the input string into tokens and for each term calculate the derivative separately for each term and add them to get the result.

## C++

 `// C++ program to find value of derivative of` `// a polynomial.` `#include ` `using` `namespace` `std;`   `long` `long` `derivativeTerm(string pTerm, ``long` `long` `val)` `{` `    ``// Get coefficient` `    ``string coeffStr = ``""``;` `    ``int` `i;` `    ``for` `(i = 0; pTerm[i] != ``'x'``; i++)` `        ``coeffStr.push_back(pTerm[i]);` `    ``long` `long` `coeff = ``atol``(coeffStr.c_str());`   `    ``// Get Power (Skip 2 characters for x and ^)` `    ``string powStr = ``""``;` `    ``for` `(i = i + 2; i != pTerm.size(); i++)` `        ``powStr.push_back(pTerm[i]);` `    ``long` `long` `power = ``atol``(powStr.c_str());`   `    ``// For ax^n, we return anx^(n-1) ` `    ``return` `coeff * power * ``pow``(val, power - 1);` `}`   `long` `long` `derivativeVal(string& poly, ``int` `val)` `{` `    ``long` `long` `ans = 0;`   `    ``// We use istringstream to get input in tokens` `    ``istringstream is(poly);`   `    ``string pTerm;` `    ``while` `(is >> pTerm) {`   `        ``// If the token is equal to '+' then` `        ``// continue with the string` `        ``if` `(pTerm == ``"+"``)` `            ``continue``;` `      `    `        ``// Otherwise find the derivative of that` `        ``// particular term` `        ``else` `            ``ans = (ans + derivativeTerm(pTerm, val));` `    ``}` `    ``return` `ans;` `}`   `// Driver code` `int` `main()` `{` `    ``string str = ``"4x^3 + 3x^1 + 2x^2"``;` `    ``int` `val = 2;` `    ``cout << derivativeVal(str, val);` `    ``return` `0;` `}`

## Java

 `// Java program to find value of derivative of` `// a polynomial` `import` `java.io.*;` `class` `GFG ` `{`   `  ``static` `long` `derivativeTerm(String pTerm, ``long` `val)` `  ``{`   `    ``// Get coefficient` `    ``String coeffStr = ``""``;` `    ``int` `i;` `    ``for` `(i = ``0``; pTerm.charAt(i) != ``'x'` `; i++)` `    ``{` `      ``if``(pTerm.charAt(i)==``' '``)` `        ``continue``;` `      ``coeffStr += (pTerm.charAt(i));` `    ``}`   `    ``long` `coeff = Long.parseLong(coeffStr);`   `    ``// Get Power (Skip 2 characters for x and ^)` `    ``String powStr = ``""``;  ` `    ``for` `(i = i + ``2``; i != pTerm.length() && pTerm.charAt(i) != ``' '``; i++)` `    ``{` `      ``powStr += pTerm.charAt(i);` `    ``}`   `    ``long` `power=Long.parseLong(powStr);`   `    ``// For ax^n, we return a(n)x^(n-1)` `    ``return` `coeff * power * (``long``)Math.pow(val, power - ``1``);` `  ``}` `  ``static` `long` `derivativeVal(String poly, ``int` `val)` `  ``{` `    ``long` `ans = ``0``;`   `    ``int` `i = ``0``;` `    ``String[] stSplit = poly.split(``"\\+"``);` `    ``while``(i

## Python3

 `# Python3 program to find ` `# value of derivative of` `# a polynomial.` `def` `derivativeTerm(pTerm, val):`   `    ``# Get coefficient` `    ``coeffStr ``=` `""`   `    ``i ``=` `0` `    ``while` `(i < ``len``(pTerm) ``and` `           ``pTerm[i] !``=` `'x'``):` `        ``coeffStr ``+``=` `(pTerm[i])` `        ``i ``+``=` `1` `        `  `    ``coeff ``=` `int``(coeffStr)`   `    ``# Get Power (Skip 2 characters ` `    ``# for x and ^)` `    ``powStr ``=` `""` `    ``j ``=` `i ``+` `2` `    ``while` `j < ``len``(pTerm):` `        ``powStr ``+``=` `(pTerm[j])` `        ``j ``+``=` `1` `   `  `    ``power ``=` `int``(powStr)`   `    ``# For ax^n, we return ` `    ``# a(n)x^(n-1)` `    ``return` `(coeff ``*` `power ``*` `            ``pow``(val, power ``-` `1``))`   `def` `derivativeVal(poly, val):`   `    ``ans ``=` `0` `    ``i ``=` `0` `    ``stSplit ``=` `poly.split(``"+"``) ` `   `  `    ``while` `(i < ``len``(stSplit)):      ` `        ``ans ``=` `(ans ``+` `               ``derivativeTerm(stSplit[i], ` `                              ``val))` `        ``i ``+``=` `1`   `    ``return` `ans`   `# Driver code` `if` `__name__ ``=``=` `"__main__"``:`   `    ``st ``=` `"4x^3 + 3x^1 + 2x^2"` `    ``val ``=` `2`    `    ``print``(derivativeVal(st, val))`   `# This code is contributed by Chitranayal`

## C#

 `// C# program to find value of derivative of` `// a polynomial` `using` `System;`   `class` `GFG{`   `static` `long` `derivativeTerm(``string` `pTerm, ``long` `val)` `{`   `    ``// Get coefficient` `    ``string` `coeffStr = ``""``;` `    ``int` `i;` `    `  `    ``for``(i = 0; pTerm[i] != ``'x'``; i++)` `    ``{` `        ``if` `(pTerm[i] == ``' '``)` `            ``continue``;` `            `  `        ``coeffStr += (pTerm[i]);` `    ``}` `    `  `    ``long` `coeff = ``long``.Parse(coeffStr);` `    `  `    ``// Get Power (Skip 2 characters for x and ^)` `    ``string` `powStr = ``""``;  ` `    ``for``(i = i + 2; ` `        ``i != pTerm.Length && pTerm[i] != ``' '``; ` `        ``i++)` `    ``{` `        ``powStr += pTerm[i];` `    ``}` `    `  `    ``long` `power = ``long``.Parse(powStr);` `    `  `    ``// For ax^n, we return a(n)x^(n-1)` `    ``return` `coeff * power * (``long``)Math.Pow(val, power - 1);` `}`   `static` `long` `derivativeVal(``string` `poly, ``int` `val)` `{` `    ``long` `ans = 0;` `    `  `    ``int` `i = 0;` `    ``String[] stSplit = poly.Split(``"+"``);` `    `  `    ``while` `(i < stSplit.Length)` `    ``{` `        ``ans = (ans +derivativeTerm(stSplit[i], val));` `        ``i++;` `    ``}` `    ``return` `ans;` `}`   `// Driver code` `static` `public` `void` `Main()` `{` `    ``String str = ``"4x^3 + 3x^1 + 2x^2"``;` `    ``int` `val = 2;` `    `  `    ``Console.WriteLine(derivativeVal(str, val));` `}` `}`   `// This code is contributed by rag2127`

## Javascript

 ``

Output:

`59`

This article is contributed by Ankit Jain . If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.