设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为nxn−1。)
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0
。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
本题主要难点为输入项的处理
#include <iostream>
#include <vector>
#include <stdio.h>
using namespace std;
#define N 100
int main()
{
vector<int> a;
int coe[N], index[N];
int p, q;
p = q = 0;
int i, j;
int num = 0;
do {
cin >> num;
a.push_back(num);
} while (getchar() != '\n');
for (i = 0; i<a.size(); i++)
{
if (i % 2 == 0)
{
coe[p++] = a[i];
}
else if (i % 2 == 1) index[q++] = a[i];
}
if (p == 1 && index[0] == 0) cout << 0 << " " << 0;
else
{
for (i = 0; i<p; i++)
{
if (index[i] != 0)
{
coe[i] = coe[i] * index[i];
index[i]--;
}
else --p;
}
for (j = 0; j<p - 1; j++)
{
cout << coe[j] << " ";
cout << index[j] << " ";
}
cout << coe[j] << " ";
cout << index[j];
}
return 0;
}