给定多项式作为字符串和值。计算给定值的多项式导数。
注意:输入格式应使术语和“ +”符号之间留有空格
The derivative of p(x) = ax^n is p'(x) = a*n*x^(n-1)
Also, if p(x) = p1(x) + p2(x)
Here p1 and p2 are polynomials too
p'(x) = p1′(x) + p2′(x)
Input : 3x^3 + 4x^2 + 6x^1 + 89x^0
2
Output :58
Explanation : Derivative of given
polynomial is : 9x^2 + 8x^1 + 6
Now put x = 2
9*4 + 8*2 + 6 = 36 + 16 + 6 = 58
Input : 1x^3
3
Output : 27
我们将输入字符串拆分为标记,并为每个术语分别计算每个术语的导数,然后将它们相加以获得结果。
C++
// C++ program to find value of derivative of
// a polynomial.
#include
using namespace std;
long long derivativeTerm(string pTerm, long long val)
{
// Get coefficient
string coeffStr = "";
int i;
for (i = 0; pTerm[i] != 'x'; i++)
coeffStr.push_back(pTerm[i]);
long long coeff = atol(coeffStr.c_str());
// Get Power (Skip 2 characters for x and ^)
string powStr = "";
for (i = i + 2; i != pTerm.size(); i++)
powStr.push_back(pTerm[i]);
long long power = atol(powStr.c_str());
// For ax^n, we return a(n-1)x^(n-1)
return coeff * power * pow(val, power - 1);
}
long long derivativeVal(string& poly, int val)
{
long long ans = 0;
// We use istringstream to get 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 derivative of that
// particular term
else
ans = (ans + derivativeTerm(pTerm, val));
}
return ans;
}
// Driver code
int main()
{
string str = "4x^3 + 3x^1 + 2x^2";
int val = 2;
cout << derivativeVal(str, val);
return 0;
}
Java
// Java program to find value of derivative of
// a polynomial
import java.io.*;
class GFG
{
static long derivativeTerm(String pTerm, long val)
{
// Get coefficient
String coeffStr = "";
int i;
for (i = 0; pTerm.charAt(i) != 'x' ; i++)
{
if(pTerm.charAt(i)==' ')
continue;
coeffStr += (pTerm.charAt(i));
}
long coeff = Long.parseLong(coeffStr);
// Get Power (Skip 2 characters for x and ^)
String powStr = "";
for (i = i + 2; i != pTerm.length() && pTerm.charAt(i) != ' '; i++)
{
powStr += pTerm.charAt(i);
}
long power=Long.parseLong(powStr);
// For ax^n, we return a(n-1)x^(n-1)
return coeff * power * (long)Math.pow(val, power - 1);
}
static long derivativeVal(String poly, int val)
{
long ans = 0;
int i = 0;
String[] stSplit = poly.split("\\+");
while(i
Python3
# Python3 program to find
# value of derivative of
# a polynomial.
def derivativeTerm(pTerm, val):
# Get coefficient
coeffStr = ""
i = 0
while (i < len(pTerm) and
pTerm[i] != 'x'):
coeffStr += (pTerm[i])
i += 1
coeff = int(coeffStr)
# Get Power (Skip 2 characters
# for x and ^)
powStr = ""
j = i + 2
while j < len(pTerm):
powStr += (pTerm[j])
j += 1
power = int(powStr)
# For ax^n, we return
# a(n-1)x^(n-1)
return (coeff * power *
pow(val, power - 1))
def derivativeVal(poly, val):
ans = 0
i = 0
stSplit = poly.split("+")
while (i < len(stSplit)):
ans = (ans +
derivativeTerm(stSplit[i],
val))
i += 1
return ans
# Driver code
if __name__ == "__main__":
st = "4x^3 + 3x^1 + 2x^2"
val = 2
print(derivativeVal(st, val))
# This code is contributed by Chitranayal
C#
// C# program to find value of derivative of
// a polynomial
using System;
class GFG{
static long derivativeTerm(string pTerm, long val)
{
// Get coefficient
string coeffStr = "";
int i;
for(i = 0; pTerm[i] != 'x'; i++)
{
if (pTerm[i] == ' ')
continue;
coeffStr += (pTerm[i]);
}
long coeff = long.Parse(coeffStr);
// Get Power (Skip 2 characters for x and ^)
string powStr = "";
for(i = i + 2;
i != pTerm.Length && pTerm[i] != ' ';
i++)
{
powStr += pTerm[i];
}
long power = long.Parse(powStr);
// For ax^n, we return a(n-1)x^(n-1)
return coeff * power * (long)Math.Pow(val, power - 1);
}
static long derivativeVal(string poly, int val)
{
long ans = 0;
int i = 0;
String[] stSplit = poly.Split("+");
while (i < stSplit.Length)
{
ans = (ans +derivativeTerm(stSplit[i], val));
i++;
}
return ans;
}
// Driver code
static public void Main()
{
String str = "4x^3 + 3x^1 + 2x^2";
int val = 2;
Console.WriteLine(derivativeVal(str, val));
}
}
// This code is contributed by rag2127
输出:
59