# Integration in a Polynomial for a given value

Given a string str which represents a polynomial and a number N, the task is to integrate this polynomial with respect to X at the given value N.

Examples:

Input: str = “90x4 + 24x3 + 18x2 + 18x”, N = 1.
Output: 39
Explanation:
Given, dy/dx = 90*(X4) + 24* (X3) + 18* (X2) + 18*(X). On integrating this equation, we get 18*(X5) + 6*(X4) + 6*(X3) + 9*(X2) and substituting the value X = 1, we get:
18 + 6 + 6 + 9 = 39.

Input: str = “4x3 + 2x2 + 3x”, N = 2
Output: 27

Approach: The idea is to use the identity of the integration. For some given function X with the power of N, the integration of this term is given by: Therefore, the following steps are followed to compute the answer:

• Get the string.
• Split the string and perform the integration based on the above formula.
• Substitute the value of N in the obtained expression.
• Add all the individual values to get the final integral value.

Below is the implementation of the above approach:

 // C++ program to find the integration  // of the given polynomial for the  // value N     #include  using namespace std;  typedef long long ll;     // Function to return the integral  // of the given term  double inteTerm(string pTerm, ll val)  {      // Get the coefficient      string coeffStr = "";      int i;         // Loop to iterate through the string      // and get the coefficient      for (i = 0; pTerm[i] != 'x'; i++)          coeffStr.push_back(pTerm[i]);      ll coeff = atol(coeffStr.c_str());         // Get the Power      string powStr = "";         // Loop to skip 2 characters for x and ^      for (i = i + 2; i != pTerm.size(); i++)          powStr.push_back(pTerm[i]);      ll power = atol(powStr.c_str());         // Return the computed integral      return (coeff * pow(val, power + 1))             / (power + 1);  }     // Functionto find the integration  // of the given polynomial for the  // value N  double integrationVal(string poly, int val)  {      ll ans = 0;         // Using string stream to get the      // 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 integration          // of that particular term          else             ans = (ans + inteTerm(pTerm, val));      }      return ans;  }     // Driver code  int main()  {      string str = "4x^3 + 3x^1 + 2x^2";      int val = 2;      cout << integrationVal(str, val);      return 0;  }

Output:

27


Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.