您的位置:首页 > 其它

1009 Product of Polynomials (25)

2014-02-16 19:31 423 查看
#include<iostream>

using namespace std;

class CA

{

public:

enum{N=100};

void init();

void run();

private:

struct poly

{

int k;

int exp
;

float cos
;

};

poly *a,*b,*c;

};

void CA::init()

{

a=new poly;

cin>>a->k;

int i;

for(i=0;i<a->k;i++)

{

cin>>a->exp[i]>>a->cos[i];

}

b=new poly;

cin>>b->k;

for(i=0;i<b->k;i++)

{

cin>>b->exp[i]>>b->cos[i];

}

}

void CA::run()

{

init();

c=new poly;

c->k=a->k*b->k;

if(c->k==0)

{

printf("1 0 0.0");

}

else

{

int i,j,count;

count=0;

for(i=0;i<a->k;i++)

{

for(j=0;j<b->k;j++)

{

c->exp[count]=a->exp[i]+b->exp[j];

c->cos[count]=a->cos[i]*b->cos[j];

count++;

}

}

int tmpex,tmpco;

int weishu=0;

for(i=1;i<c->k-1;i++)

{

for(j=i-1;j>=0;j--)

{

if(c->exp[j+1]>c->exp[j])

{

tmpex=c->exp[j+1];

tmpco=c->cos[j+1];

c->exp[j+1]=c->exp[j];

c->cos[j+1]=c->cos[j];

c->exp[j]=tmpex;

c->cos[j]=tmpco;

}

if(c->exp[j+1]==c->exp[j])

{

c->cos[j]=c->cos[j]+c->cos[j+1];

c->exp[j+1]=0;

c->cos[j+1]=0;

}

}

}

for(i=0;i<c->k;i++)

if(c->cos[i]!=0.0)

weishu++;

printf("%d",weishu);

for(i=0;i<c->k;i++)

{

if(c->cos[i]!=0.0)

{

printf(" %d %.1f",c->exp[i],c->cos[i]);

}

}

}

}

int main()

{

CA *w=new CA;

w->run();

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: