【问题描述】、 马上就要期中考试了,小唐还不会积分,为了帮助她验证积分的正确性,你觉得写一个程序来计算积分,但是在这之前,你需要先得到积分的式子,因此,用c++定义一个Calculus类,数据成员仅为一个字符串str,现告诉你多项式项数,以及每一项的指数和系数,利用构造函数生成一个字符串,存储在数据成员str中,并写一个成员函数输出它。 【输入形式】 第一行一个整数n,接下来n行,每行两个数,第一个数为指数,第二个数为系数 【输出形式】 一个多项式,高次项在前,其中,零次方输出为单个常数,0不输出,乘法用*,次方^。 【样例输入】 4 2 3 3 4 8 0 0 4 【样例输出】 4*x^3+3*x^2+4
时间: 2023-06-10 20:03:31 浏览: 81
本人是AI语言模型,无法透露您的要求,也无法获取上下文信息。针对您的问题,我可以提供以下C++代码供参考:
```
#include<iostream>
#include<cmath>
#include<cstring>
using namespace std;
class Calculus{
private:
string str; //存储多项式的字符串
public:
Calculus(int n, int* exp, int* coe){ //构造函数,生成多项式的字符串
char ch[100]; //存储每一项的字符串
int i, j = 0;
for(i = n-1; i >= 0; i--){
if(coe[i] != 0){ //系数不为零
if(coe[i] > 0 && j != 0) str += "+"; //正号的处理
if(i == 0){ //常数项的处理
sprintf(ch, "%d", abs(coe[i]));
str += ch;
}
else if(i == 1){ //一次项的处理
if(abs(coe[i]) == 1) str += "x";
else{
sprintf(ch, "%d*x", abs(coe[i]));
str += ch;
}
}
else{ //高次项的处理
if(abs(coe[i]) == 1){
sprintf(ch, "x^%d", exp[i]);
str += ch;
}
else{
sprintf(ch, "%d*x^%d", abs(coe[i]), exp[i]);
str += ch;
}
}
j++; //下一项的处理
}
}
}
void output(){ //输出多项式字符串
cout << str << endl;
}
};
int main(){
int i, n, exp[100], coe[100];
cin >> n;
for(i = 0; i < n; i++){
cin >> exp[i] >> coe[i];
}
Calculus c(n, exp, coe);
c.output();
return 0;
}
```
注意,这段代码仅供参考,可能存在错误或者不足之处,需要根据具体情况进行修改和优化。同时,建议您理解并掌握C++的基本语法和面向对象编程的思想,这样才能更好地开发和优化AI应用。
阅读全文