您的位置:首页 > 其它

poj 1555 Polynomial Showdown 模拟

2015-12-05 09:04 260 查看
//poj 1555
//sep9
#include <iostream>
using namespace std;
char s[10024];
int a[10024];

int main()
{
while(gets(s)){
int cnt=0;
for(int i=0;s[i]!='\0';){
int p=1;
while(!(s[i]<='9'&&s[i]>='0')){
if(s[i]=='-')
p=-1;
++i;
}
int x=0;
while(s[i]<='9'&&s[i]>='0')
x=x*10+s[i]-'0',++i;
x*=p;
a[cnt++]=x;
}
int i;
for(i=0;i<cnt;++i)
if(a[i])
break;
if(i==cnt){
puts("0");
continue;
}
int first=0;
for(int i=0;i<cnt;++i)
if(a[i]){
int e=cnt-i-1;
if(first==0){
first=1;
if(a[i]<0){
if(a[i]==-1)
printf("-");
else
printf("%d",a[i]);
}else{
if(a[i]!=1)
printf("%d",a[i]);
}
}else{
if(a[i]<0){
if(a[i]==-1)
printf(" - ");
else
printf(" - %d",abs(a[i]));
}else{
if(a[i]==1)
printf(" + ");
else
printf(" + %d",a[i]);
}
}
if(e>1)
printf("x^%d",e);
else if(e==1)
printf("x");
else if(e==0&&abs(a[i])==1)
printf("1");

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