给定值在多项式中的积分
给定代表多项式和数字 N 的字符串 str ,任务是在给定值 N 处相对于 X 积分该多项式。 示例:
输入:str = " 90x4+24x3+18x2+18x ",N = 1。 输出: 39 说明: 给定,dy/dx = 90 (X4)+24 (X3)+18 (X2)+18 (X)。在积分这个方程时,我们得到 18 (X5)+6 (X4)+6 (X3)+9 (X2),代入数值 X = 1,我们得到: 18 + 6 + 6 + 9 = 39。 输入:str = " 4x3+2x2+3x ",N = 2 输出: 27
进场:思路是利用身份的整合。对于某个给定的 N 次方函数 X,这个项的积分由下式给出:
因此,按照以下步骤计算答案:
- 去拿绳子。
- 拆分字符串并根据上述公式进行积分。
- 在得到的表达式中代入 N 的值。
- 将所有单个值相加,得到最终的整数值。
以下是上述方法的实现:
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 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 语言(一种计算机语言,尤用于创建网站)
// 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.
Python 3
# 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
// 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.
java 描述语言
<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
版权属于:月萌API www.moonapi.com,转载请注明出处