C++
题目没有说明结束的标志,那么指的是用EOF来结束文本输入。
注意“零多项式”的指数和系数都是 0,但是表示为 0 0————这句话是本题的重点,也是6分的踩分点。一开始找不到存哪,后来度娘告诉我每个系数都是0的多项式是零多项式。
#include <cstdio>
#include <vector>
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
struct DUO{
int cishu;
int xishu;
}a;
int main(){
vector<DUO> vec;
int i=0;
while(~scanf("%d %d", &a.xishu, &a.cishu)){ //读到文本结尾
vec.push_back(a) ;
}
for(vector<DUO>::iterator it=vec.begin(); it!=vec.end();){
it->xishu*=it->cishu;
if(it->cishu!=0) it->cishu--;
if(it->xishu==0 && it->cishu==0){
vec.erase(it,it+1);
}else it++;
}
int n=vec.size();
vector<DUO>::iterator it=vec.begin();
for( i=0; i<n ; i++){
printf("%d %d", (it+i)->xishu, (it+i)->cishu);
if(i != n-1) printf(" ");
}
if(i==0) printf("0 0"); //注意“零多项式”的指数和系数都是 0,但是表示为 0 0。
return 0;
}
转载需注明出处。