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.


Input: str = “90x4 + 24x3 + 18x2 + 18x”, N = 1.
Output: 39
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:
\int (X^{N}) = \frac{X^{N + 1}}{N + 1}

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 <bits/stdc++.h>
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++)
    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++)
    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 == "+")
        // Otherwise find the integration
        // of that particular term
            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;




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 or mail your article to 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.