设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为nxn−1 。)
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
思路:
定义两个数组,一个用于存放系数,一个存放指数,然后对系数乘以指数即为求导后的系数(分常数项与非常数项)
代码:
//1010 一元多项式求导
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> coefficient;//存放系数
vector<int> index;//存放指数
int temp;
while (cin.peek() != '\n')//读取系数与指数
{
cin >> temp;
coefficient.push_back(temp);
cin >> temp;
index.push_back(temp);
}
for (int i = 0; i < coefficient.size(); i++)
{
if (index[i] != 0)//指数大于1的求导
{
coefficient[i] *= index[i];
index[i]--;
}
else//常数项求导
{
coefficient[i] *= index[i];
}
}
cout << coefficient[0] << ' ' << index[0];
for (int i = 1; i < coefficient.size(); i++)//输出
{
if (index[i] != 0||coefficient[i]!=0)
{
cout << ' ' << coefficient[i] << ' ' << index[i];
}
}
return 0;
}
网友评论