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 <bits/stdc++.h>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
<script>// Javascript program for the above approach// Function to return the integral // of the given termfunction 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 Nfunction 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 codelet st = "4x^3 + 3x^1 + 2x^2";let val = 2;document.write(integrationVal(st, val));// This code is contributed by avanitrachhadiya2155</script> |
27
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



