思路点拨:
用一个结构体数组来存储每个数以及它的指数,然后根据条件来进行判断输出。
需要注意题目条件“注意“零多项式”的指数和系数都是 0,但是表示为 0 0”,这一点需要考虑到,不然,不能够,满分通过。
代码如下:
#include<iostream>
#include<vector>
#include<cstdio>
using namespace std;
struct num {
int number;
int count;
};
int main()
{
vector<num> numbers;
num tmp;
int m = 0;
int a, b;
while (scanf("%d %d", &a, &b) != EOF)
{
tmp.number = a;
tmp.count = b;
m++;
numbers.push_back(tmp);
}
int n = 0;
for (int i = 0; i < m; i++)
{
if (numbers[i].number != 0 && numbers[i].count != 0)
{
// 指数不为0且系数不为0,求导后该项才不为零
if (numbers[i].count > 0 && numbers[i + 1].count > 0 && i < m - 1)
cout << numbers[i].number*numbers[i].count << " " << numbers[i].count - 1 << " ";
else
cout << numbers[i].number*numbers[i].count << " " << numbers[i].count - 1;
n++;
}
}
if (n == 0) cout << "0" << " " << "0";
return 0;
}
码后总结:
需要考虑到这一点,只有指数不为0且系数不为0,求导后该项才不为零。另一点就是,关于EOF使用时,在VS2015中,需要三次Ctrl+z+enter,才能结束输入。
总的来说,这道题很基础。