思路:
创建int类型的容器,输入,从头开始循环,元素1乘以元素2的结果返回给元素1,然后元素2自减1,做完以后迭代器自加2、
输出的时候创建一个flag用来控制空格,没有输出过其他东西的时候,我们flag为0,不输出空格;输出过其他东西以后,我们让flag为1,输出空格。如果容器循环结束后flag还是0,那说明这个是零多项式,我们输出指定内容就可以了
可以掌握的要点
1,使用标签来控制空格
2,使用迭代器来控制输出
代码
/*pow(x,y) 求 x的y次幂
* 1 2 3 4 5 6
*/
#include<vector>
#include<stdio.h>
#include<iostream>
using namespace std;
inline void display(vector<int>&ivec, ostream& os);
int main() {
int n;
vector<int> ivec;
while (cin >> n) {
ivec.push_back(n);
}
vector<int>::iterator iter = ivec.begin();
vector<int>::iterator iter_end = ivec.end();
for (; iter != iter_end; iter += 2) {
*iter = *iter * *(iter + 1);
if (*(iter + 1) != 0) {
*(iter+1)= *(iter + 1)-1;
}
}
display(ivec, cout);
return 0;
}
inline void display(vector<int>&ivec,ostream& os) {
vector<int>::iterator iter_begin = ivec.begin();
vector<int>::iterator iter_end = ivec.end();
int flag=0;
for (; iter_begin != iter_end; iter_begin+=2) {
if (*iter_begin == 0 && *(iter_begin + 1) == 0)continue;
if (flag == 1) {
cout << " ";
}
cout << *iter_begin << " "<< * (iter_begin + 1);
flag=1;
}
if (flag == 0) {
cout << "0 0";
}
}