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++ 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++)
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;
} |
// Java program for the above approach public 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 program to find # the integration of the # given polynomial for the # value N # Function to return the integral # of the given term def 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 N def 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 code if __name__ = = "__main__" :
st = "4x^3 + 3x^1 + 2x^2"
val = 2
print (integrationVal(st, val))
# This code is contributed by Chitranayal |
// C# program for the above approach using 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. |
<script> // Javascript program for the above approach // Function to return the integral // of the given term
function inteTerm(pTerm,val)
{ // Get the coefficient
let coeffStr = "" ;
// Loop to iterate through
// the string and get the
// coefficient
let i = 0;
while (i < pTerm.length && pTerm[i] != 'x' )
{
coeffStr += pTerm[i];
i += 1;
}
let coeff = parseInt(coeffStr);
// Get the Power
let powStr = "" ;
// Loop to skip 2 characters
// for x and ^
let j = i + 2;
while (j< pTerm.length)
{
powStr += (pTerm[j]);
j += 1;
}
let power = parseInt(powStr);
// Return the computed integral
return Math.floor((coeff * Math.floor(Math.pow(val, power + 1))) / (power + 1));
} // Functionto find the integration // of the given polynomial for the
// value N
function integrationVal(poly,val)
{ let ans = 0;
// Using string stream to
// get the input in tokens
let stSplit = poly.split( " + " );
let i = 0;
while (i < stSplit.length)
{
ans = (ans + inteTerm(stSplit[i], val));
i += 1;
}
return ans;
} // Driver code let st = "4x^3 + 3x^1 + 2x^2" ;
let val = 2; document.write(integrationVal(st, val)); // This code is contributed by avanitrachhadiya2155 </script> |
Output:
27