アイデアは
、構造体配列を使用して各数値とそのインデックスを格納し、条件に従って出力を判断することです。
タイトルの条件に注意する必要があります。「ゼロ多項式の指数と係数はどちらも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でない場合のみ、項目は導出後にゼロではありません。もう1つのポイントは、E2015を使用する場合、VS2015では、入力を終了するためにCtrl + z + Enterを3回必要とすることです。
一般的に、この質問は非常に基本的です。