# Integration in a Polynomial for a given value

Given 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++

 // 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 termdouble 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 Ndouble 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 codeint main(){    string str = "4x^3 + 3x^1 + 2x^2";    int val = 2;    cout << integrationVal(str, val);    return 0;}

## Java

 // Java program for the above approachpublic class GFG{   // Function to return the integral  // of the given term  static int inteTerm(String pTerm, int val)  {     // Get the coefficient    String coeffStr = "";     // Loop to iterate through     // the string and get the     // coefficient    int i = 0;    while (i < pTerm.length() && pTerm.charAt(i) != 'x')    {      coeffStr += pTerm.charAt(i);      i += 1;    }     int coeff = Integer.parseInt(coeffStr);     // Get the Power    String powStr = "";     // Loop to skip 2 characters     // for x and ^    int j = i + 2;    while(j< pTerm.length())    {      powStr += (pTerm.charAt(j));      j += 1;    }    int power = Integer.parseInt(powStr);     // Return the computed integral    return ((coeff * (int)Math.pow(val, power + 1)) / (power + 1));  }   // Functionto find the integration  // of the given polynomial for the  // value N  static int integrationVal(String poly, int val)  {    int ans = 0;     // Using string stream to     // get the input in tokens    String[] stSplit = poly.split(" \\+ ");     int i = 0;    while(i < stSplit.length)    {      ans = (ans + inteTerm(stSplit[i], val));      i += 1;    }     return ans;  }   // Driver code  public static void main(String[] args) {    String st = "4x^3 + 3x^1 + 2x^2";    int val = 2;    System.out.println(integrationVal(st, val));  }} // This code is contributed by divyesh072019.

## Python3

 # Python3 program to find # the integration of the # given polynomial for the# value N # Function to return the integral# of the given termdef inteTerm(pTerm, val):     # Get the coefficient    coeffStr = ""     # Loop to iterate through     # the string and get the     # coefficient    i = 0    while (i < len(pTerm) and           pTerm[i] != 'x'):        coeffStr += pTerm[i]        i += 1             coeff = int(coeffStr)     # Get the Power    powStr = ""     # Loop to skip 2 characters     # for x and ^    j = i + 2    while j< len(pTerm):        powStr += (pTerm[j])        j += 1    power = int(powStr)     # Return the computed integral    return ((coeff *             pow(val,                  power + 1)) //            (power + 1)) # Functionto find the integration# of the given polynomial for the# value Ndef integrationVal(poly, val):     ans = 0     # Using string stream to     # get the input in tokens    stSplit = poly.split("+")     i = 0    while i < len(stSplit):        ans = (ans +               inteTerm(stSplit[i],                         val))        i += 1     return ans # Driver codeif __name__ == "__main__":     st = "4x^3 + 3x^1 + 2x^2"    val = 2    print(integrationVal(st, val)) # This code is contributed by Chitranayal

## C#

 // C# program for the above approachusing System;using System.Collections.Generic;class GFG {   // Function to return the integral  // of the given term  static int inteTerm(string pTerm, int val)  {     // Get the coefficient    string coeffStr = "";     // Loop to iterate through     // the string and get the     // coefficient    int i = 0;    while (i < pTerm.Length && pTerm[i] != 'x')    {      coeffStr += pTerm[i];      i += 1;    }     int coeff = Convert.ToInt32(coeffStr);     // Get the Power    string powStr = "";     // Loop to skip 2 characters     // for x and ^    int j = i + 2;    while(j< pTerm.Length)    {      powStr += (pTerm[j]);      j += 1;    }    int power = Convert.ToInt32(powStr);     // Return the computed integral    return ((coeff * (int)Math.Pow(val, power + 1)) / (power + 1));  }   // Functionto find the integration  // of the given polynomial for the  // value N  static int integrationVal(string poly, int val)  {    int ans = 0;     // Using string stream to     // get the input in tokens    string[] stSplit = poly.Split('+');     int i = 0;    while(i < stSplit.Length)    {      ans = (ans + inteTerm(stSplit[i], val));      i += 1;    }     return ans;  }   // Driver code  static void Main() {    string st = "4x^3 + 3x^1 + 2x^2";    int val = 2;    Console.WriteLine(integrationVal(st, val));  }} // This code is contributed by divyeshrabadiya07.

## Javascript



Output:
27

Previous
Next