一元多项式相加 C++ 50

用C++实现给我源代码在线等!!!只要加法其他运算法则不要!!!... 用C++实现 给我源代码 在线等!!!
只要加法 其他运算法则不要!!!
展开
 我来答
在世贸天阶灌篮的高飞燕草
2007-12-13 · TA获得超过2378个赞
知道大有可为答主
回答量:2070
采纳率:0%
帮助的人:2018万
展开全部
#include <iostream>
using namespace std;
int main()
{
int a,b,c;
cout << "请输入3个数字:"<< endl;
cin >> a >> b >> c;
cout << a << "+" << b << "+" << c << "=" << a + b + c << endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
feldspar
2007-12-15 · TA获得超过384个赞
知道小有建树答主
回答量:564
采纳率:0%
帮助的人:0
展开全部
#include <vector>
#include <iostream>
#include <limits>
using namespace std;
class Polynomial
{
public:
friend ostream& operator<< (ostream&, const Polynomial& p);
public:
Polynomial() {}
Polynomial(const double* c, size_t s) { Coffs.assign(c, c+s); }

Polynomial operator+ (Polynomial& other)
{
Polynomial p1, p2;
if (Coffs.size() < other.Coffs.size())
{
p1 = *this;
p2 = other;
}
else
{
p1 = other;
p2 = *this;
}

Polynomial result = p2;
for (int i=0; i<p1.Coffs.size(); ++i)
{
result.Coffs[i] += p1.Coffs[i];
}

result.adjust();
return result;
}

private:
void adjust()
{
size_t lenth = Coffs.size();
for (int i=lenth-1; i>=0; --i)
{
static double epsilon = numeric_limits<double>::epsilon();
if (Coffs[i]<=-epsilon || Coffs[i]>=epsilon)
{
lenth = i+1;
break;
}
}

if (lenth != Coffs.size())
{
Polynomial tmp;
tmp.Coffs.assign(Coffs.begin(), Coffs.begin()+lenth);
*this = tmp;
}
}

vector<double> Coffs;
};

ostream& operator<< (ostream& os, const Polynomial& p)
{
for (int i=0; i<p.Coffs.size(); ++i)
{
os << p.Coffs[i] << " ";
}
os << endl;
return os;
}

int main()
{
double poly1[] = {0, 2, 3, 5};
double poly2[] = {1, -2, 3, -5};
Polynomial p1(poly1, sizeof(poly1) / sizeof(poly1[0]));
Polynomial p2(poly2, sizeof(poly2) / sizeof(poly2[0]));
Polynomial p3 = p1 + p2;

cout << p3;

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式